2012-01-27 73 views
0

嘗試將具有查詢字符串的URL重定向到子域,並且無法使其工作。htaccess查詢字符串重定向失敗

的目標是使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

+0

'$ 1'不應該在那裏。 – Gerben 2012-01-27 19:19:16

回答

1

我想通了這一點。這裏是我把它工作:

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

現在一切正常工作。

根據需要,規則末尾的NE標記在查詢字符串中保留雙引號,並且不對它們進行編碼。

4

試試這個:

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

修改它做我需要的: RewriteCond%{HTTP_HOST}^www \ .example \ .com/services/json $ [NC] RewriteRule ^(。*)$ http://old.example.com/$ 1 [R = 301,L] 它不起作用。它只停留在www域。所以它不起作用,似乎不影響任何東西。 – jazzdrive3 2012-01-28 05:34:45

相關問題