htaccess使用get将子域重定向到php文件

时间:2011-07-09 18:37:02

标签: .htaccess

如何使用htaccess将子域重定向到带有$ _GET的php文件?

例如

en.domain.com => domain.com/index.php?lang=en

2 个答案:

答案 0 :(得分:4)

将这些指令放入根文件夹中的 .htaccess

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} =en.domain.com
RewriteRule .* http://domain.com/index.php?lang=en [QSA,R=301,L]

此规则会将{301}永久重定向从en.domain.com子域中的任意网址重定向到此网址:http://domain.com/index.php?lang=en - 这正是您提出的问题。


<强>更新 此规则将采用子域并将其作为lang参数传递给index.php。现在规则支持2种语言: en (英语)或 fr (法语)。编辑此片段(en|fr)以添加/更改语言。

RewriteCond %{HTTP_HOST} ^(en|fr)\.domain\.com [NC]
RewriteRule .* http://domain.com/index.php?lang=%1 [QSA,R=301,L]

此规则将从 ANY 子域重定向(可以是任何内容,甚至是jhjaghj77.domain.com)。我不知道你会有多少种语言..但我建议使用之前的选项(当你手动指定所有可能的语言时)。

RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.domain\.com [NC]
RewriteRule .* http://domain.com/index.php?lang=%1 [QSA,R=301,L]

答案 1 :(得分:-1)

当在apache上启用mod_rewrite时,此代码有效。