我试图重定向请求通配符域的一个子目录。
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$
            ^

这应该做的把戏

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top