Url 使用mod_重写删除国家/地区域名

Url 使用mod_重写删除国家/地区域名,url,mod-rewrite,url-rewriting,Url,Mod Rewrite,Url Rewriting,我买了一个国际域名(.com)和一个巴西域名(.com.br)。我需要将人们从巴西域名重定向到国际域名,以便website.com.br/contact转到website.com/contact。除此之外,我还想从巴西和国际域名中删除www。因此,www.thewebsite.com.br/contact会将我的用户带到www.thewebsite.com/contact 我正在使用Drupal.htaccess重写规则删除www: RewriteCond %{HTTP_HOST} ^www

我买了一个国际域名(.com)和一个巴西域名(.com.br)。我需要将人们从巴西域名重定向到国际域名,以便website.com.br/contact转到website.com/contact。除此之外,我还想从巴西和国际域名中删除www。因此,www.thewebsite.com.br/contact会将我的用户带到www.thewebsite.com/contact

我正在使用Drupal.htaccess重写规则删除www:

  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
你推荐什么?调整此规则以删除国际.br,或在此基础上添加另一规则以删除.br?从我的URL中删除www和.br的最终修改条件是什么?

这应该有效

<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>

#启用重写
重新启动发动机
重写基/
#将.br重写为国际域
重写cond%{HTTP_HOST}^www.domain.com.br[NC]
重写规则^(.*)$http://domain.com/$1[L,R=301]
#将非www..br改写为国际域
RewriteCond%{HTTP_HOST}^domain.com.br[NC]
重写规则^(.*)$http://domain.com/$1[L,R=301]
#将www.改写为非www。
重写cond%{HTTP_HOST}^www.domain.com[NC]
重写规则^(.*)$http://domain.com/$1[L,R=301]

谢谢。唯一的问题是,此代码不会将domain.com.br重定向到domain.com,因为它不会在没有.www的情况下搜索domain.com.br。我可以添加第三条规则来处理.com.br而不使用.www。或者这是一种不好的做法?有没有办法用一条规则解决所有这些问题?对不起,你是对的,我已经编辑了原文,将非www.br to包含在内。可以使用多个规则来实现它。如果您需要每一盎司的性能,您应该将任何htaccess规则移动到httpd.conf并禁用htaccess文件,这将为您的每次页面加载提供一个提升。