2013-04-22 3 views
0

Я не слишком хорошо знаком с регулярными выражениями, и у меня возникают проблемы с достижением того, что я хочу.htaccess удалить строку запроса

Веб-сайт, на котором я работаю, был на нем блоге Wordpress, и в Интернете есть ссылки, указывающие на номер http://www.website.com/?p=(random).

Текущий код, который я сейчас, кажется, не работает:

RewriteCond %{QUERY_STRING} p=(.*) 
RewriteRule http://www.website.com/ [R=301,L] 

В самом деле, если есть способ, чтобы удалить какой-либо строки запроса для страницы индекса, что было бы еще лучше.

Заранее спасибо.

ответ

3

Если вы хотите, чтобы удалить все строки запроса независимо

RewriteCond %{QUERY_STRING} . 
RewriteRule ^$ /? [R,L] 

Это позволит проверить, есть ли строка запроса ., а затем перенаправляет на главную страницу без строки запроса /?.

Никогда тест с 301 включен, см этот ответ Tips for debugging .htaccess rewrite rules для деталей.

+0

Отлично! Просто то, что я искал – Brian

+0

Мне не нужно было удалять все строки запроса во всех переадресациях, но thx для подсказки. У меня была проблема, что флаг QSD получил ошибку 500, потому что флаг QSD для Apache v2.4.0 и более поздних версий, в то время как мой хост имеет более старую версию. Добавление? в конце правила удалены строки запроса для этого конкретного правила. :) –

Смежные вопросы