【问题标题】:Redirect all traffic but "beta" sub-domain to Splash screen (mod_rewrite)将除“beta”子域之外的所有流量重定向到启动画面 (mod_rewrite)
【发布时间】:2010-05-26 09:42:27
【问题描述】:

我想将我的所有流量重定向到我的根域,根域是一个启动屏幕。仅当 %{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”子域重定向到根域。所以现在我想用我的启动屏幕重写“后台”根域,在 .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 框架,所以这些规则在 .htaccess 文件中:

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

我必须说,我被困住了。

提前谢谢

【问题讨论】:

  • 会更好,如果你在SF上问你的问题......
  • 我应该把它复制到服务器故障吗?两者有什么区别?

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


【解决方案1】:

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

【讨论】:

  • 我会接受这个答案。不过,我已经编辑了您的代码 sn-p,因此在访问 Apache HTTP 服务器上的现有文件/目录/符号链接时,它不会重写为 /splash.html是:RewriteRule ^.*$ - [NC,L]。有关详细信息,请参阅Zend Framework rewriting rules explained (.htaccess)
猜你喜欢
  • 2017-10-23
  • 2016-09-16
  • 2021-12-14
  • 2015-03-13
  • 2013-10-28
  • 2011-09-13
  • 1970-01-01
  • 2012-01-25
相关资源
最近更新 更多