- Автор темы
- #1
Говорю сразу: в PHP не силен.
Имеем алиас вида site.ru/arhiv/kategoriya/obyavlenie.html. Если юзер набирает неверно URL объявления - ему 404. Если неверно URL категории - 404. Но если изменяет "/arhiv/" - его редиректит на главную, а структура ссылки остается прежней. Пример: site.ru/av/kategoriya/obyavlenie.html (попадает на главную, но URL содержит в себе "kategoriya/obyavlenie.html", при этом объявление больше не отображается).
Тем самым, имеем овер ***** дублей главной.
Поняв, что ошибка в компоненте, прикинул 2 решения:
1. Изменить .htaccess. И черт с ними, со 120 вариациями слова ARHIV. Однако, если добавить к arhiv +1 символ, имеем проблему выше. Притом, это уже бесконечное число вариаций набора. Устранить сие невозможно.
2. PHP. Быстро, просто и красиво. Если URL не содержит "/arhiv/" - 404. Сам код:
Однако после теста понял, что:
1. Т.к. юзера редиректит на главную, а не на дубль того же объявления, то код нужно вставить в раздел вывода списка объявлений или в сам файл index.php (что и было сделано).
2. После вставки кода в index.php - все заработало и если набрать что-то помимо "/arhiv/" - объявление не откроется.
3. Появилась проблема: все категории, которые не содержат "/arhiv/" (site.ru/kategoriya.html), тоже под 404, в.т.ч. и главная, т.к. там вывод всех объявлений компонента.
Собственно - вопросы:
Возможно ли к данному коду присобачить "исключения" URL-адресов для определенных страниц, чтобы категории спокойно открывались? Если да - замечательно! Покажите на примере как это сделать. Если нет - как можно решить проблему иначе?
P.S.> Привязать категорию к arhiv (site.ru/arhiv/kategoriya/) не вариант.
P.P.S.> Либо переписать данный код, чтобы просто при неверном наборе ARHIV выдавал 404... Но как?
Имеем алиас вида site.ru/arhiv/kategoriya/obyavlenie.html. Если юзер набирает неверно URL объявления - ему 404. Если неверно URL категории - 404. Но если изменяет "/arhiv/" - его редиректит на главную, а структура ссылки остается прежней. Пример: site.ru/av/kategoriya/obyavlenie.html (попадает на главную, но URL содержит в себе "kategoriya/obyavlenie.html", при этом объявление больше не отображается).
Тем самым, имеем овер ***** дублей главной.
Поняв, что ошибка в компоненте, прикинул 2 решения:
1. Изменить .htaccess. И черт с ними, со 120 вариациями слова ARHIV. Однако, если добавить к arhiv +1 символ, имеем проблему выше. Притом, это уже бесконечное число вариаций набора. Устранить сие невозможно.
2. PHP. Быстро, просто и красиво. Если URL не содержит "/arhiv/" - 404. Сам код:
Код:
if (strpos($_SERVER['REQUEST_URI'], "arhiv") !== false) {}
else {
JError::raiseError(404, _JSHOP_PAGE_NOT_FOUND); //Выводом 404 CMS
exit();
}
Однако после теста понял, что:
1. Т.к. юзера редиректит на главную, а не на дубль того же объявления, то код нужно вставить в раздел вывода списка объявлений или в сам файл index.php (что и было сделано).
2. После вставки кода в index.php - все заработало и если набрать что-то помимо "/arhiv/" - объявление не откроется.
3. Появилась проблема: все категории, которые не содержат "/arhiv/" (site.ru/kategoriya.html), тоже под 404, в.т.ч. и главная, т.к. там вывод всех объявлений компонента.
Собственно - вопросы:
Возможно ли к данному коду присобачить "исключения" URL-адресов для определенных страниц, чтобы категории спокойно открывались? Если да - замечательно! Покажите на примере как это сделать. Если нет - как можно решить проблему иначе?
P.S.> Привязать категорию к arhiv (site.ru/arhiv/kategoriya/) не вариант.
P.P.S.> Либо переписать данный код, чтобы просто при неверном наборе ARHIV выдавал 404... Но как?
Последнее редактирование: