Mod_rewrite подстановочные поддомены. Простой вопрос относительно не очень простых правил переписывания - PullRequest
0 голосов
/ 18 июля 2011

В основном я пытаюсь сделать это:

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 Ответ

1 голос
/ 18 июля 2011

RewriteRule зависит от текущего набора условий RewriteCond.

Так что вам придется сделать что-то подобное:

RewriteCond
RewriteCond
RewriteRule


RewriteCond
RewriteCond
RewriteRule
...