题
我试图重定向请求通配符域的一个子目录。
ie。 something.blah.domain.com
--> blah.domain.com/something
我不知道如何获取该域名使用在重写规则。
最终解决方案:
RewriteCond %{HTTP_HOST} !^blah\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteRule ^(.*) /%1/$1 [L]
或者指出pilif
RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
解决方案
你应该看一看 URL重写指南 从阿帕奇的文件。
以下是未经测试,但它应该把戏:
RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$ http://blah.domain.com/%1/$1 [L,R]
这只是工作,如果子没有包含点。否则,你就必须改变Regexp在重写过相匹配的任何性质仍应工作由于锚定,但是这肯定感觉更安全。
其他提示
试试这个:
RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]
@pilif(见的评论):好吧,那是真实的。我只是复制的一种。要我使用我的一个项目。猜测它有一个稍微不同的方法:)
@Sam
你重写过线是错误的。扩大的可变触发的与%,不$.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
^
这应该做的把戏
不隶属于 StackOverflow