Задать вопрос
@Ysery

Отсечение вопросительного знака через htaccess?

Доброго времени суток.

Найденный на просторах сети код практически идеально работает, отсекает "строки запроса" кроме тех, что реально используются на сайте (p= и s=), а также не отсекает ничего, если работа осуществляется в админке сайта.

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{QUERY_STRING} !=""
 RewriteCond %{QUERY_STRING} !^p=.*
 RewriteCond %{QUERY_STRING} !^s=.*
 RewriteCond %{REQUEST_URI} !^/wp-admin.*
 RewriteRule ^(.*)$ /$1? [R=301,L]
</IfModule>


Но вот один момент мне кажется недочётом, а именно игнорирование символа "вопросительный знак", т.е. если, к примеру, в ссылке будет такое - test.ru/nazvanie?, то не будет отсечён вопросительный знак, но при этом сработает если, к примеру, будет вот так test.ru/nazvanie?123 и итоговая ссылка будет test.ru/nazvanie

Можно ли добавить удаление даже в том случае (т.е. самого символа "?"), если на конце будет лишь вопросительный знак?
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dodo512
Там первый RewriteCond
RewriteCond %{QUERY_STRING} !=""
Просто заменить на
RewriteCond %{THE_REQUEST} \?

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{THE_REQUEST}  \?
 RewriteCond %{QUERY_STRING} !^p=.*
 RewriteCond %{QUERY_STRING} !^s=.*
 RewriteCond %{REQUEST_URI}  !^/wp-admin.*
 RewriteRule ^(.*)$ /$1? [R=301,L]
</IfModule>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы