0

在大数据导入期间,我必须对网站进行维护。导入是在后台完成的,所以我需要把前台放在维护中,而不是后台

在我的 .htaccess 中有它适用于所有人,但我需要排除所有以 /admin(.*) 开头的网址:

# Maintenance things
RewriteCond %{REQUEST_FILENAME} !/maintenance.php$
RewriteRule $ /maintenance.php [R=302,L]

# Standard zend framework rewrite rules :
RewriteRule .* - [env=not_alias:true]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{ENV:not_alias} !=true
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

我为第一个 RewriteCond 尝试了不同的东西,这些东西不像论文那样工作:

RewriteCond %{REQUEST_URI} !^/(admin(.*)|maintenance.php)

或者那个 :

RewriteCond %{REQUEST_FILENAME} !/maintenance.php$
RewriteCond %{REQUEST_URI} !/admin(.*)$

感谢帮助

4

2 回答 2

0

我确信可以使用 .htaccess 来完成,但是您可以尝试使用控制器插件的另一个选项。您可以将您的逻辑放在 dispatchLoopStartup() 钩子中,如果它是对前台的请求,则将用户重定向到 maintenance.php 否则什么也不做。

于 2013-03-26T10:08:45.607 回答
0

不需要 RewriteCond 只是一个好的 RewriteRule :

# Maintenance things
RewriteRule !^(admin(.*)|index.php|maintenance.php)$ /maintenance.php [R=302,L]

# Standard zend framework rewrite rules :
RewriteRule .* - [env=not_alias:true]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{ENV:not_alias} !=true
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
于 2013-03-26T20:32:07.353 回答