我们有一个英语和西班牙语版本的网站,每个版本都在不同的域名上。我们还为每种语言提供了一些备用域,我们希望将其重定向到该语言的主域。
具体做法是:
我正在努力改写重写规则,所以任何帮助都会受到高度赞赏。
答案 0 :(得分:2)
有两种方法可以做到这一点。第一个是最简单的,但并不总是实用的。
此方法不需要HTACCESS文件。在Apache服务器配置中,您只需为要处理的每个域添加ServerAliases。 (您必须确保所有域都指向同一台计算机)
代码
NameVirtualHost *:443
<VirtualHost *:443>
ServerName estadiosfutbol.com
ServerAlias estadiosfutbol.info estadiosfutbol.net estadiosfutbol.org
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:443>
ServerName worldstadiums.football
ServerAlias worldfootballstadiums.com worldfootballstadiums.net worldfootballstadiums.info worldfootballstadiums.org
DocumentRoot /www/otherdomain
</VirtualHost>
注意:只有在用户尝试使用SSL访问网站时,才会重定向。 (例如)如果您希望它重定向来自端口80和端口443的所有流量,则需要创建单独的虚拟主机并使用第二种方法来实现重定向。
第二种方式稍微复杂一点,但几乎适用于所有情况。为了使其正常工作,需要执行两个主要步骤:
确保您使用的任何服务器软件都设置为查找所有域。服务器必须有一个正在监听每个域的VirtualHost(Apache),以便下一步做任何事情。
在每个域的根目录下创建一个类似于此的.HTACCESS文件:
代码
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !estadiosfutbol.net$ [NC]
RewriteRule ^(.*)$ https://estadiosfutbol.com/$1 [L,R=301]
注意:您需要将每个域的第三行更改为要重写的域(例如estadiosfutbol.net/,estadiosfutbol.org/和estadiosfutbol.info)
注意:更改第四行是单独域所需的全部内容。