Перенаправить в каталог, сохранив строку запроса - PullRequest
0 голосов
/ 30 июня 2011

Любой запрос для /, содержащий строку запроса, вызывает запуск 404. Я обнаружил, что если я добавлю /shop/ перед строкой запроса, он будет перенаправлен внутри системы, и 404 не сработает.

Мне нужно общее правило mod_rewrite, которое будет принимать URL в виде:

http://www.example.com/?foo=bar

и перенаправить на:

http://www.example.com/shop/?foo=bar

где строка запроса (может быть любым) сохраняется.

1 Ответ

0 голосов
/ 30 июня 2011

Это будет перенаправлять (URL изменится) все попадания в ROOT (например, http://www.example.com/), которые содержат строку запроса в http://www.example.com/shop/.

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} !^$
RewriteRule ^$ http://www.example.com/shop/ [QSA,R,L]

Это перезапишет внутренне (URL останется прежним в браузере) всех попаданий в ROOT (например, http://www.example.com/), которые содержат строку запроса в http://www.example.com/shop/.

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} !^$
RewriteRule ^$ /shop/ [QSA,L]
...