2011-05-11 71 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