2009-10-19 74 views
2

我的网络主机会自动将* .mydomain.com的所有请求转发到顶级域mydomain.com。使用.htaccess将子域指向子文件夹

我想将任何子域映射到我的顶层域上的特定文件夹。即sub.example.com必须映射到example.com/someFolder(而不是地址栏中的更改)。

在网上四处挖后,我想出了这个:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$ 
RewriteRule (.*) http://example.com/myfolder/$1 [L] 

这似乎运作良好,除了一个问题:当我去到URL sub.example.com,该URL中地址栏更改为example.com/myfolder。但是,当我执行诸如sub.example.com/login之类的操作时,它会正确映射到“example.com/sub/login”,而不会在地址栏中进行更改。任何帮助非常感谢!

+0

什么是您的虚拟主机btw? – Pacerier 2013-05-24 09:09:36

回答

2

只需要小的变化:

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$ 
RewriteRule (.*) myfolder/$1 [L] 

剥离出来的http://在这告诉Apache发送一个重定向头,而不是正确的服务器端重写的规则。

+0

我刚刚尝试过,它仍然导致地址的变化... ... – philly77 2009-10-19 12:33:17

+0

对不起,这是我的错,我正在做一个PHP重定向与绝对(直接)的网址,因此它看起来好像它不工作!谢谢! – philly77 2009-10-19 13:40:02

相关问题