2013-04-23 43 views
2

我已經在.htaccess文件中設置了301重定向的數量,但我遇到了使重定向不匹配的查詢字符串的問題。301重定向:匹配查詢字符串,不要將它附加到新的重定向

例子:

Redirect 301 /about/history/?lang=fr http://www.newdomain.com/fr/history 
Redirect 301 /about/history/ http://www.newdomain.com/nl/history 

所以olddomain.com/about/history/?lang=fr現在匹配第二個規則和重定向到http://www.newdomain.com/nl/history?lang=fr

我希望它從字面上採用?lang=fr,而不是將querystring附加到新的重定向。

我該怎麼做?

回答

2

Redirect需要一個URL-路徑,它不包含查詢字符串。所以,第一個Redirect從來沒有匹配。

達到你想要什麼,你可以嘗試某種content negotiation或使用mod_rewrite

RewriteEngine on 
RewriteCond %{QUERY_STRING} lang=fr 
RewriteRule /about/history/ http://www.newdomain.com/fr/history? [R,L] 
RewriteRule /about/history/ http://www.newdomain.com/nl/history [R,L] 

如果一切正常,你期望的那樣,你可以改變RR=301

+0

謝謝!我最終使用了PHP重定向,而在這種情況下效果更好。 – Joan 2013-04-23 18:51:04

相關問題