Добавить url в исключения - php

Risenab

Постоялец
Регистрация
17 Дек 2016
Сообщения
69
Реакции
49
Говорю сразу: в 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. Сам код:

Код:
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... Но как?
 
Последнее редактирование:
P.P.S.> Либо переписать данный код, чтобы просто при неверном наборе ARHIV выдавал 404... Но как?

Вот это самый правильный вариант.
Как сделать надо у джумловодов спрашивать.
Возможно поможет совет:
Extensions - Plugins - System Redirect - Collect URLs (Enabled / Disabled)
а возможно надо копать глубже.
 
Назад
Сверху