0

ビッグデータのインポート中にWebサイトをメンテナンスする必要があります。インポートはバックオフィスで行われるため、フロントオフィスをメンテナンスする必要がありますが、バックオフィスは必要ありません。

.htaccessにすべての機能を備えていますが、/ admin(。*)で始まるすべてのURLを除外する必要があります。

# 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 に答える