2016-03-23 197 views
1

我有多箇舊域需要根據這些規則重定向到一個新域, 要麼到新域中的特定文件夾或相同的url參數:使用htaccess將舊域重定向到新域根或目錄

  1. olddomain1.com/ - >重定向到newdomain.com/a
  2. olddomain1.com/parameter=x - >重定向到newdomain.com/parameter=x

  3. olddomain2.com/- >重定向到newdomain.com/b

  4. olddomain2.com/parameter=x - >重定向到newdomain.com/parameter=x

到目前爲止,我有這樣的代碼:

RewriteCond %{HTTP_HOST} ^olddomain1\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.olddomain1\.com$ 
RewriteRule ^/?$ "http\:\/\/www\.newdomain\.com\/$1" [R=301,L] 
RewriteRule ^$ /a 

RewriteCond %{HTTP_HOST} ^olddomain2\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.olddomain2\.com$ 
RewriteRule ^/?$ "http\:\/\/www\.newdomain\.com\/$1" [R=301,L] 
RewriteRule ^$ /b 

問題是,如果試圖加載 http://www.olddomain2.com/ 它發送給我 http://www.newdomain.com/a

你能幫助解決此代碼正常工作嗎? 感謝

回答

1

您可以使用這些規則:

##Redirect "domain1.com" to "/a"## 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain1\.com$ 
RewriteRule ^$ http://www.newdomain.com/a [R,L] 
##Redirect "domain1.com/foo" to "newdoamain/foo"## 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain1\.com$ 
RewriteRule ^(.+)$ http://www.newdomain.com/$1 [R,L] 
##Redirect "domain2.com" to "/a"## 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain2\.com$ 
RewriteRule ^$ http://www.newdomain.com/b [R,L] 
##Redirect "domain2.com/foo" to "newdoamain/foo"## 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain2\.com$ 
RewriteRule ^(.+)$ http://www.newdomain.com/$1 [R,L] 
+0

作品。謝謝 !我應該添加[R = 301,L]而不是[R,L]嗎? – buzibuzi

+1

** R **是默認使用302狀態碼的臨時重定向,您可以將** R **更改爲** R = 301 **來進行重定向permament。 – starkeen

相關問題