.htaccess子域名重定向到根域名

3
我只想快速询问一个关于.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重定向...希望你们能帮帮我...提前感谢...

你需要 虚拟主机 - Michael Slade
你可以查看这篇帖子,非常有用。https://dev59.com/F3VC5IYBdhLWcg3wykaj - tienrocker
1个回答

1
将以下内容的 .htaccess 放入您的子域文件夹中:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteRule ^(.*) http://www.mydomain.com$1?comingfrom=%1 [QSA,R=301,L]

(未经测试,抱歉)

编辑:

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

 <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>

1
这个可以运行……但它“改变”了URL……有没有办法保持像sub.mydomain.com这样的URL,并在内部执行重定向的页面? - saggio09
虽然我没有使用这个解决方案,因为我的主机不允许...但这是问题的解决方案...所以我将把它作为我的问题的解决方案... - saggio09

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接