.htaccess - удалить строку запроса из URL (без перенаправления) - PullRequest
0 голосов
/ 21 февраля 2012

Мой URL-адрес http://www.example.com/eg1?redirect=xyz, который должен быть http://www.example.com/eg1

Правило переписывания, написанное для этого, выглядит следующим образом:

RewriteCond %{Query_STRING} ^redirect=xyz$
RewriteRule ^(.*)$ /examples/$1? [L]

Перенаправление работает нормально, но строка запроса остается добавленной. Когда я ставлю [R] флаг, вопросительный знак (?) в конце прекрасно работает и удаляет строку запроса, но с флагом [L] он не работает. И в моем случае у меня нет перенаправления, я просто передаю его в другой каталог, содержащий содержимое.

1 Ответ

2 голосов
/ 21 февраля 2012

Правила в порядке:

RewriteCond %{Query_STRING} ^redirect=xyz$
RewriteRule ^(.*)$ /examples/$1? [L]

Если вы хотите, чтобы это отражалось в адресной строке, вам нужно будет указать внешнее перенаправление .то есть R с Temporary Redirect (R=302) или Permanent Redirect (R=301).Вместе с L.По умолчанию R выполняет временное перенаправление.

RewriteRule ^(.*)$ /examples/$1? [R,L]

Из комментариев:

Добавьте L вместе с flsg R.

RewriteRule ^(.*)$ $1? [R,L] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...