Apache mod_rewrite规则作为子域

时间:2012-04-28 23:00:52

标签: apache mod-rewrite

怎么可能这个

http://some-url.com/?lang=en

改写为:

http://en.some-url.com ???

通过mod_rewrite?

1 个答案:

答案 0 :(得分:1)

您可以在some-url.com的VirtualHost-configfile中将所有可能的特定于语言的子域定义为ServerAlias,并添加以下rewriterule

RewriteEngine On
RewriteCond %{HTTP_HOST} ^some-url\.com$ [NC]
RewriteCond %{QUERY_STRING} lang=(.*)$
RewriteRule . http://%1.some-domain.com/? [R=301,L] 

在您的服务器端脚本中,您可以通过检查名为HTTP_HOST的SERVER / CGI变量获取实际语言(在php中,这将是$_SERVER['HTTP_HOST'],而在ColdFusion中,这将是#CGI.HTTP_HOST#