htaccess перенаправить строку запроса на добавление?

У меня есть перенаправление htaccess, которому нужно перенаправить строку запроса на новый URL-адрес, но после перенаправления оно сбрасывается. Может кто-нибудь сказать мне, что случилось?

RewriteRule ^services/agents.*$          https://services.example.com/agents/ [R=301,L,QSA]

person Aaron    schedule 29.06.2009    source источник


Ответы (2)


Это же правило отлично работает на моем сервере. Проблема должна быть в другом. Я добавил то же правило на свой сервер, и я получаю следующее перенаправление

http://mysite.com/services/agents/foo?foo=bar => https://services.mysite.com/agents/?foo=bar

Обратите внимание, что вам не нужно добавлять флаг QSA, так как цель не включает строку запроса. Эта статья может содержать некоторую полезную информацию. чтобы помочь вам разобраться с Htaccess и Query String.

person Simone Carletti    schedule 29.06.2009
comment
Я понял. На сервере, на который я перенаправлялся, была настроена собственная переадресация для /agents/ =› /services/agents. Вздох.. - person Aaron; 30.06.2009

Как правило, нет необходимости явно добавлять запрос или использовать флаг QSA, если вы не указываете запрос для замены. Но, как вы сказали, ваше правило не работает, попробуйте следующее:

RewriteRule ^services/agents.*$ https://services.example.com/agents/?%{QUERY_STRING} [R=301,L]
person Gumbo    schedule 30.06.2009