我想将所有流量重定向到我的根域,根域是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]
我必须说,我被卡住了。
事先提前答案 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]