0

Использование .htaccess Как я могу перенаправить все URL-адреса, содержащие строку запроса, в «каноническую» версию URL-адреса?Перенаправить все URL-адреса, содержащие запросы

Пример:

www.example.com/?bla_bla следует перенаправить на www.example.com/

www.example.com/test/?bla_bla_evil_querystring следует перенаправить на www.example.com/ тест/

www.example.com/test.html?bla_bla должен перенаправлять www.example.com/test.html

Ищу сайт-широкий решение перенаправить любой URL с querystrings к тот же URL-адрес с быстрыми ответами.

Спасибо!

+0

Что делать, если есть какая-либо полезная строка запроса для ваших URL-адресов? – anubhava

ответ

1

Самый простой способ сделать это будет с помощью mod_rewrite.

RewriteEngine on 

RewriteCond %{QUERY_STRING} . 
RewriteRule^%{REQUEST_URI} [R,QSD,L] 

Это правило соответствует, если строка запроса имеет длину не менее 1 символа. Флаг QSD будет отбрасывать строку запроса. Флаг R вызовет перенаправление. После того, как вы проверили, что это правило работает должным образом, замените флаг R на R=301, чтобы сделать перенаправление постоянным.

В версиях, где флаг QSD еще не реализован, вы можете использовать следующий код. Обратите внимание: это оставит ? за вашим URL, но я ничего не могу с этим поделать. Попробуйте обновить Apache до последней версии.

RewriteRule^%{REQUEST_URI}? [R,L] 
+0

Используя это, будут ли поисковые системы просматривать перенаправление 301? Забыл сказать это: Спасибо! :) – Malasorte

+0

Собственно, я забыл добавить перенаправление полностью. Я немного изменил свой ответ. – Sumurai8

+0

Еще раз спасибо! Сегодня я проведу некоторое тестирование, и я вернусь с принятым ответом. – Malasorte