Apache重定向到特定于语言的域

时间:2018-02-21 17:35:23

标签: apache

我正在寻找根据浏览器中设置的语言重定向到两个不同域的解决方案。

人们将访问 maindomain.com/path ,应将其重定向到 english.com/path 作为默认设置并 french.com/path 如果浏览器语言设置为法语。

2 个答案:

答案 0 :(得分:0)

在Apache中,您可以使用mod_rewrite根据语言重定向。例如,在虚拟主机文件中:

RewriteEngine On
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^maindomain.com/(.*) https://english.com/$1 [L]

RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^maindomin.com/(.*) https://french.com/$1 [L]

确保启用mod_rewrite模块: a2enmod rewrite

答案 1 :(得分:0)

感谢@swmcdonnell,我设法让这个工作。这就是我提出的,可能有所简化,但这对我有用:

RewriteEngine On

#if browser is set to a german type language and on maindomain.com (de, de-ch, ...)
RewriteCond %{HTTP:Accept-Language} ^de.* [NC]
RewriteCond %{HTTP_HOST} ^maindomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.maindomain.com$
RewriteRule (.*)$  https://www.german.com$1 [L,R=301]

#default to french.com
RewriteCond %{HTTP_HOST} ^maindomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.maindomain.com$
RewriteRule (.*)$ https://www.french.com$1 [L,R=301]

(这些语言是我实际使用的)