Как заставить Джумлу игнорить символ "?" в урле?

ZoomY
На сайте с 07.11.2008
Offline
165
1048

Приветствую, коллеги!

Столкнулся с такой проблемой, что в если Джумле после адреса вида example.com/content/123/ добавить вопросительный знак и некий параметр (получаем страницу вида example.com/content/123/?abcdefg), страница не отображается, а появляется сообщение о том, что недостаточно прав для просмотра и необходима авторизация. Авторизации на сайте как таковой нету (не нужна), хоть и предусмотрена функционалом Джумлы.

Собственно сам вопросительный знак после адреса и параметры после него для самого сайта также не нужны: туда добавляется переменная Гугла при переходе из АдВордза (АдВордз подвязан к Аналитиксу на сайте и Гугл "вклеивает" в урл эту инфу чтобы отслеживать клики).

Также при запросе несуществующей страницы, вместо 404 вижу аналогичное сообщение - "недостаточно прав, необходима авторизация", из чего делаю вывод, что, возможно, Джумла интерпретирует вот это самое ?abcdefg не как параметр, а как часть названия страницы (не знаю, бывает ли такое, но сообщения идентичны).

Пытался сделать редирект в .htaccess и обрезать урлы при обнаружении в них символа ?, но не работает - видимо неправильный синтаксис пишу.

Собственно вопрос: как сделать так, чтобы Джумла игнорировала этот вопросительный знак и всё что после него? Можно ли это сделать в настройках самого движка (и как?), либо таки оформить в .htaccess (что писать?).

Был бы очень благодарен за толковый совет.

Размещу ваши статьи на сайтах с тИЦ до 1400 по 5$ (/ru/forum/846111) Сейчас многие ищут хостинг за пределами России. Ukrnames - один из лучших вариантов: (http://ukrnames.com/?ref_id=114) и лидер рынка, и привычно, и по-русски, и вне юрисдикции РФ.
wdsg
На сайте с 09.02.2009
Offline
31
#1
ZoomY:
Приветствую, коллеги!

Столкнулся с такой проблемой, что в если Джумле после адреса вида example.com/content/123/ добавить вопросительный знак и некий параметр (получаем страницу вида example.com/content/123/?abcdefg), страница не отображается, а появляется сообщение о том, что недостаточно прав для просмотра и необходима авторизация. Авторизации на сайте как таковой нету (не нужна), хоть и предусмотрена функционалом Джумлы.

Собственно сам вопросительный знак после адреса и параметры после него для самого сайта также не нужны: туда добавляется переменная Гугла при переходе из АдВордза (АдВордз подвязан к Аналитиксу на сайте и Гугл "вклеивает" в урл эту инфу чтобы отслеживать клики).

Также при запросе несуществующей страницы, вместо 404 вижу аналогичное сообщение - "недостаточно прав, необходима авторизация", из чего делаю вывод, что, возможно, Джумла интерпретирует вот это самое ?abcdefg не как параметр, а как часть названия страницы (не знаю, бывает ли такое, но сообщения идентичны).

Пытался сделать редирект в .htaccess и обрезать урлы при обнаружении в них символа ?, но не работает - видимо неправильный синтаксис пишу.

Собственно вопрос: как сделать так, чтобы Джумла игнорировала этот вопросительный знак и всё что после него? Можно ли это сделать в настройках самого движка (и как?), либо таки оформить в .htaccess (что писать?).

Был бы очень благодарен за толковый совет.

Если возможно, .htaccess в ЛС пришлите.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
ZoomY
На сайте с 07.11.2008
Offline
165
#2

wdsg, уже подсказали, благодарю.

Прописал следующую штуку в .htaccess:


RewriteBase /
RewriteCond %{QUERY_STRING} .+
RewriteRule ^(.*) $0? [R]

Когда у урле встречается вопросительный знак, он обрезается равно как и всё, что после него.

ZoomY добавил 19.05.2009 в 11:57

Ан нет, рано я обрадовался.

Теперь следующая проблема: админка всё передаёт гетом и там нужна возможность передачи параметров в адресной строке.

Т.е. нужно блокировать символ "?" только в подразделе /content/.

Как же это сделать?..

xpert13
На сайте с 15.09.2008
Offline
127
#3

Попробуй так:

RewriteRule ^content/(.*) $0? [R]
ZoomY
На сайте с 07.11.2008
Offline
165
#4

xpert13, да, примерно так и сделал. У меня это выглядит так:

RewriteRule ^(.*)content(.*) $0? [R]

Спасибо за помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий