Mod_rewrite通配符子域。关于不那么简单的重写规则的简单问题

时间:2011-07-18 19:08:54

标签: mod-rewrite wildcard subdomain

基本上我正在尝试这样做:

subdomain.domain.com - > domain.com/account?user=subdomain

到目前为止一切顺利。我发现这个代码可以做到并完美无缺:

RewriteCond %{HTTP_HOST} !^domain\.com [NC]
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} =""
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com$
RewriteRule ^(.*)$ account.php?user=%1 [E=SUBDOMAIN:%1,L]
RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L]

现在我正在尝试添加一个更简单的规则(用*标记)。添加这个新规则会使一切都崩溃。什么都不起作用

RewriteCond %{HTTP_HOST} !^domain\.com [NC]
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} =""
RewriteCond %{HTTP_HOST} ([^.]+)\.domain\.com$
* RewriteRule ^/somepage http://domain.com/anotherpage [E=SUBDOMAIN:%1,L]
RewriteRule ^(.*)$ account.php?user=%1 [E=SUBDOMAIN:%1,L]
RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L]

知道发生了什么以及如何纠正它?

谢谢 克特林

1 个答案:

答案 0 :(得分:1)

RewriteRule受当前RewriteCond条件的限制。

所以你必须做那样的事情:

RewriteCond
RewriteCond
RewriteRule


RewriteCond
RewriteCond
RewriteRule