【问题标题】:Mod_rewrite wildcard subdomains. Simple question regarding not so simple rewrite rulesMod_rewrite 通配符子域。关于不那么简单的重写规则的简单问题
【发布时间】:2011-10-07 22:57:29
【问题描述】:

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

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]

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

谢谢 卡塔林

【问题讨论】:

  • 你的新规则应该做什么?也许您只需要将它放在另一个地方(因为规则的顺序很重要)?我相信即使是现有的规则也可以简化。

标签: mod-rewrite wildcard subdomain


【解决方案1】:

RewriteRule 受当前 RewriteCond 条件集的约束。

所以你必须这样做:

RewriteCond
RewriteCond
RewriteRule


RewriteCond
RewriteCond
RewriteRule

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    相关资源
    最近更新 更多