你可以嘗試這樣的事情:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule (.*) http://www.domain.co.uk/$1 [L,R=301]
重要的一點是使用RewriteCond
工作在HTTP主機頭上的ition。簡單地說,如果在正常的RewriteRule
之前放置RewriteCond
,則只有在條件匹配時才使用該規則。
上面的代碼摘錄重定向從.COM
到.CO.UK
站點的所有請求,所以如果你只需要重定向特定的目錄,則需要相應地調整規則,如:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteRule uk(.*) http://www.domain.co.uk/uk$1 [L,R=301]
編輯:我希望這將根據您的編輯爲您工作。
第一條規則將http://www.domain.com/uk
和http://www.domain.com/uk/anything
重寫爲http://www.domain.co.uk/uk/anything
。
第二條規則重寫http://www.domain.co.uk
爲http://www.domain.co.uk/uk/
。
編輯2:我改變了規則(修改了最後一個並添加了另一個),以反映.co.uk/something
上重寫的需求。如果路徑以uk/
開頭,那麼它只是通過,否則它會被重寫爲uk/something
。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule uk($|/.*) http://www.domain.co.uk/uk$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteRule ^uk/(.*) - [PT,L]
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteRule (.*) http://www.domain.co.uk/uk/$1 [L,R=301]
您的回答也需要考慮只有以'/ uk'開頭的路徑才應該被重定向。 – Greg 2011-06-01 22:16:38
在我看來,最初的問題並不清楚是否應該只重定向路徑或文件。它主要是關於域名重定向,但是 - 確保 - 僅路徑重定向也應該是可能的(使用不同的規則)。 – jCoder 2011-06-01 22:36:52
我已經爲我的帖子添加了一個編輯,不知道是否澄清了任何內容。 /英國應該永遠在英國頁面 – 2011-06-01 22:51:24