2011-05-11 74 views
1

我買了國際域名(.com)和巴西域名(.com.br)。我需要將用戶從巴西域名重定向到國際域名,以便thewebsite.com.br/contact轉到thewebsite.com/contact。最重要的是,我還想從巴西和國際域名中刪除www。因此,www.thewebsite.com.br/contact將我的用戶帶到thewebsite.com/contact。使用mod_rewrite刪除國家域名

我使用Drupal的的.htaccess重寫規則去除WWW:

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule^http://%1%{REQUEST_URI} [L,R=301] 

你有什麼建議?修改此規則以刪除國際.br或在其上添加另一條規則以刪除.br?從我的URL中移除www和.br的最終mod_rewrite條件如何?

回答

3

這應該工作。

<IfModule mod_rewrite.c> 
# Enable rewrite 
RewriteEngine On 
RewriteBase/
# Rewrite .br to international domain 
RewriteCond %{HTTP_HOST} ^www.domain.com.br [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] 
# Rewrite non www. .br to international domain 
RewriteCond %{HTTP_HOST} ^domain.com.br [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] 
# Rewrite www. to non www. 
RewriteCond %{HTTP_HOST} ^www.domain.com [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301] 
</IfModule> 
+1

謝謝。唯一的問題是,這段代碼不會將domain.com.br重定向到domain.com,因爲它不搜索domain.com.br沒有.www。我可以添加第三條規則來照顧.com.br而不需要.www。或者這是一個不好的做法?有一種方法可以用一條規則解決所有這些問題嗎? – 2011-05-11 21:52:10

+0

抱歉您是對的,我編輯了原始文件以包含非www .br to。使用多個規則來實現它是很好的。 – CMck 2011-05-11 21:55:18

+0

謝謝,我擔心性能...... – 2011-05-11 22:01:31