.htaccess子域重定向到根域

时间:2012-04-28 12:14:41

标签: php .htaccess mod-rewrite

我只想问一个关于.htaccess的快速问题。

以下是我的网站主机如何使用子域名...

一旦我创建了一个子域...然后他们就像这样在根文件夹中创建一个文件夹......

www.mydomain.com ---> public_html
sub.mydomain.com ---> public_html/sub

我想要做的是......将所有来自sub.mydomain.com的请求重定向到www.mydomain.com并使用一些GET变量或某些东西来识别请求来自哪个子域......

所以例如......当我收到像这样的工作请求时

http://sub.mydomain.com/myphp.php ---> http://www.mydomain.com/myphp.php?comingfrom=sub
http://sub.mydomain.com/(anyUrl)  ---> http://www.mydomain.com/(anyUrl)?comingfrom=sub

我也想知道这是否会执行主域中存在的一些.htaccess重定向...

希望你们能帮帮我......

提前致谢...

1 个答案:

答案 0 :(得分:1)

将带有以下内容的.htaccess放入子域文件夹中:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteRule ^(.*) http://www.mydomain.com$1?comingfrom=%1 [QSA,R=301,L]

(未经测试,抱歉)

修改

您指出您希望将子域保留在地址栏中,并且不希望重定向。因此,您需要对您的<VirtualHost> www.mydomain.com进行视图更改

 <VirtualHost ...:80>
   ServerName www.mydomain.com
   ServerAlias mydomain.com
   ServerAlias sub.mydomain.com

   DocumentRoot /path/to/your/docroot/of/www.mydomain.com

   RewriteEngine On
   RewriteCond %{HTTP_HOST} !^www\.mydomain\.com [NC]
   RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
   RewriteRule ^(.*) $1?comingfrom=%1 [QSA,PT,L]
 </VirtualHost>