0

サイトがメンテナンス モードの場合、.htaccess ファイルを使用して、訪問者を指定されたメンテナンス ページにリダイレクトします。

コードは問題なく動作しますが、アドレス バーにメンテナンス ページへのパスを表示する代わりに、ドメイン名を表示したいと考えています。そのため、訪問者がリダイレクトされたときにアドレス バーに「www.mysite.com/maintenance.html」を表示するのではなく、代わりに「www.mysite.com」を表示したいと考えています。これは可能ですか?

私が使用しているこのコード:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^[my ip address]
RewriteCond %{REQUEST_FILENAME} !.css$
RewriteCond %{REQUEST_FILENAME} !.png$
RewriteCond %{REQUEST_FILENAME} !.jpg$
RewriteCond %{REQUEST_FILENAME} !.gif$
RewriteCond %{REQUEST_FILENAME} !.js$

RewriteRule $ /maintenance.html [R=302,L]
4

1 に答える 1

0

話すのが早すぎた。部分的にしか機能しません。ドメイン インデックス以外のページにアクセスしようとすると、メンテナンス ページにリダイレクトされますが、「メンテナンス中」の画像と css は表示されません。空白の白いページにスタイルが設定されていないテキストのみが表示されます。

いくつかのことをしたいようです。

  1. メンテナンス モードでは、すべてのリクエストをルート ページ (例: http://www.mysite.com/ )にリダイレクトします。
  2. ルート ページには、/maintenance.html の内容が表示されます。

したがって、これら 2 つのことを別々に処理する必要があります。

# for #1
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^[my ip address]
RewriteCond %{REQUEST_FILENAME} !.css$
RewriteCond %{REQUEST_FILENAME} !.png$
RewriteCond %{REQUEST_FILENAME} !.jpg$
RewriteCond %{REQUEST_FILENAME} !.gif$
RewriteCond %{REQUEST_FILENAME} !.js$
RewriteRule $ / [R=302,L]

# for #2 
RewriteCond %{REMOTE_ADDR} !^[my ip address]
RewriteRule ^$ /maintenance.html
于 2012-04-20T19:20:23.363 に答える