Перенаправление htaccess со строкой запроса завершается неудачно - PullRequest
0 голосов
/ 27 января 2012

Попытка перенаправить URL-адрес со строкой запроса на поддомен и не может заставить его работать.

Цель состоит в том, чтобы www.example.com/services/json?method=views.get стал old.example.com/services/json?method=views.get

У меня в файле .htaccess:

RedirectMatch 301 ^www\.example\.com/services/json$ http://old.example.com/services/json$1

В Chrome он просто остается на домене www.

В Firefox один раз происходит сбой, говоря: « Firefox обнаружил, что сервер перенаправляет запрос на этот адрес способом, который никогда не завершится. » Но если я нажму «Попробовать еще раз», он перейдет к субдомен просто отлично.

Это бесит, и любая помощь приветствуется. Я пробовал несколько разных шаблонов.

Спасибо!

Кроме того, в строке запроса есть двойные кавычки. Можно ли сохранить их без кодирования в %2522?

Ответы [ 2 ]

4 голосов
/ 27 января 2012

Попробуйте это:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://old.example.com/$1 [R=301,L]
1 голос
/ 28 января 2012

Я понял это. Вот что я положил, чтобы заставить его работать:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^services/json(.*)$ http://old.example.com/services/json$1 [NE,L,R=301]

Теперь все отлично работает.

Тег NE в конце правила сохраняет двойные кавычки в строке запроса по мере необходимости и не кодирует их.

...