0

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

我的问题很简单..

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

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/ 并从 url 中隐藏 /de/。

如果有人访问 www.mysite.es,系统会将他们重定向到 www.mysite.com/es/ 并从 url 中隐藏 /es/。

如果有人访问 www.mysite.en,系统会将他们重定向到 www.mysite.com/com/ 并从 url 中隐藏 /en/。

知道如何处理吗?

4

1 回答 1

0

如果语言目录是您站点中的物理目录,则无需使用 rewrite。就像在 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:

编辑了重写条件以仍然允许旧格式 www.mysite.com/de 等。

于 2013-11-05T10:17:03.260 回答