我的webhost会自动将所有请求转发到* .mydomain.com到顶级域mydomain.com。
我想将任何子域映射到我的顶级域上的特定文件夹。即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 :(得分:3)
只需要进行小的改动:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$
RewriteRule (.*) myfolder/$1 [L]
在规则中删除http://,告诉Apache发送Redirect标头而不是正确的服务器端重写。