不同的域名重定向到不同的语言

时间:2013-11-05 09:55:04

标签: apache

我最近为我的项目买了几个其他域名。

我的问题非常简单..

我想在我的项目中协调不同语言的每个域名..

Language                Lauguage folder        Different domains

English                 www.mysite.com/en      www.mysite.com

Spanish (Spain)         www.mysite.com/es      www.mysite.es

German (Germany)        www.mysite.com/de      www.mysite.de

在上面这个例子中..

如果有人访问www.mysite.de,系统会将其重定向到www.mysite.com/de/并隐藏/ de /来自网址。

如果有人访问www.mysite.es,系统会将其重定向到www.mysite.com/es/并隐藏/ es /来自网址。

如果有人访问www.mysite.en,系统会将其重定向到www.mysite.com/com/并隐藏/ en /来自网址。

任何想法如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

如果语言目录是站点中的phsyical目录,则无需使用重写。它就像在apache conf中为每种语言声明一个虚拟主机一样简单。

<VirtualHost *:80>
    DocumentRoot /path/to/mysite/en
    ServerName www.mysite.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /path/to/mysite/de
    ServerName www.mysite.de
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /path/to/mysite/es
    ServerName www.mysite.es
</VirtualHost>

编辑:

我想我现在了解情况。

某些重定向规则怎么样?

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST}  ^www\.mysite\.com$ [NC]
RewriteCond %{REQUEST_URI}  !^/en/ [NC]
RewriteCond %{REQUEST_URI}  !^/de/ [NC]
RewriteCond %{REQUEST_URI}  !^/es/ [NC]
RewriteRule ^([^/]+)?/?$ /en/$1  [L,QSA]

RewriteCond %{HTTP_HOST}  ^www\.mysite\.de$ [NC]
RewriteCond %{REQUEST_URI}  !^/de/ [NC]
RewriteRule ^([^/]+)?/?$ /de/$1  [L,QSA]

RewriteCond %{HTTP_HOST}  ^www\.mysite\.es$ [NC]
RewriteCond %{REQUEST_URI}  !^/es/ [NC]
RewriteRule ^([^/]+)?/?$ /es/$1  [L,QSA]

编辑2:

编辑重写conds仍然允许旧格式www.mysite.com/de等。