Перенаправить весь трафик, кроме «бета» субдомена, на экран-заставку (mod_rewrite) - PullRequest
1 голос
/ 26 мая 2010

Я бы хотел перенаправить весь мой трафик на мой корневой домен, корневой домен - это экран-заставка. Я хотел бы сделать это ТОЛЬКО, когда% {HTTP_HOST} не является beta.example. (Com | es | fr).

Итак, я попробовал следующее в моем файле .htaccess, но не повезло ... (бесконечный цикл ... Я думаю, он не получает условие REQUEST_URI, но не могу понять, почему ?? )

RewriteCond %{HTTP_HOST} !^beta\.example\.com$
RewriteCond %{HTTP_HOST} !^beta\.example\.es$
RewriteCond %{HTTP_HOST} !^beta\.example\.fr$
RewriteCond %{REQUEST_URI} !^/?$
RewriteRule ^.*$ / [NC,L,R=302]

В этот момент у меня должен быть весь трафик, кроме суб-домена «бета», перенаправленный в корневой домен. Так что теперь я хотел бы перезаписать «backstage» корневой домен с моим заставкой, следуя в файле .htaccess:

RewriteCond %{HTTP_HOST} !^beta\.example\.com$
RewriteCond %{HTTP_HOST} !^beta\.example\.es$
RewriteCond %{HTTP_HOST} !^beta\.example\.fr$
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ splash.phtml [NC,L]

Примечание. Я использую Zend Framework, поэтому в файле .htaccess соблюдаются следующие правила:

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Должен сказать, я застрял.

спасибо заранее

1 Ответ

0 голосов
/ 04 февраля 2011

@ bsagols

Эта строка от Zend наверняка вас облажает.

RewriteRule ^.*$ index.php [NC,L]

Вы должны поставить свои директивы выше этого, если не выше всего материала Zend. Если я вас правильно понимаю, попробуйте это:

RewriteCond "%{HTTP_HOST}"   "!^beta\.example\.(com|es|fr)$"    [NC]
RewriteCond "%{REQUEST_URI}" "!\.(js|ico|txt|gif|jpg|png|css)$" [NC]
RewriteRule ".*"              "/splash.phtml"                   [R=302,L]
...