#apache #.htaccess #mod-rewrite #redirect #rewrite
#apache #.htaccess #мод-перезапись #перенаправление #переписать
Вопрос:
У меня есть что-то вроде этого:
RewriteCond %{QUERY_STRING} ^something=true$
RewriteRule ^$ http://www.a123dress.com/ [R=301,L]
Я хочу перенаправить ВСЕ (*) запросы, которые имеют «?something = true» на
Это работает для:
Я хочу переписать, например:
http://www.a123dress.com/test/?something=true
Для:
http://www.a123dress.com/test/
так что отрезать? что-то = true, как указано выше в первом примере
Ответ №1:
Ваше регулярное ^$
выражение просто позволяет перенаправлять домашнюю страницу /
. Измените свое правило на:
RewriteCond %{QUERY_STRING} ^something=true$ [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L,NE]
Комментарии:
1. Спасибо! это работает! но почему там есть пробел? перед «%» ^ %{REQUEST_URI}?
2. 1, но нужно ли нам
NE
, поскольку мы все равно удаляем параметры? Просто спрашиваю, пытаюсь учиться. 🙂3. Спасибо, да
NE
удобно, если в исходном URI есть какие-то специальные символы, такие как[
или]
и т. Д.