将所有流量重定向到“测试”子域到Splash屏幕(mod_rewrite)

时间:2010-05-26 09:42:27

标签: zend-framework .htaccess mod-rewrite splash-screen

我想将所有流量重定向到我的根域,根域是Splash屏幕。我只想在%{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]

此时,我应该拥有所有流量,但“beta”子域重定向到根域。所以现在我想用.shtaccess文件中的Splash屏幕重写“后台”根域:

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 :(得分:0)

@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]