サイト全体をメンテナンスページに切り替える単純な方法
2009.02.04 Wednesday | category:htaccess
http://www.○○○.com/ というページ全体を、メンテナンスなどで閉じなければならなくなった時、
htaccessで全体をアクセス禁止にすると、403エラーの画面になってしまうし、
メンテナンス用ページを作成してredirectさせようとすると、結局http://www.○○○.com/ 以下にファイルを置かなければいけないため、
redirectの処理が無限ループしてしまいます。
http://www.○○○.com/ 以下に、こちらのhtaccessをUP(属性604)
http://www.○○○.com/mente/mente.htmlに、メンテナンスページを用意し
http://www.○○○.com/mente/以下に、こちらのhtaccessをUP(属性604)
これは、http://www.○○○.com/以下のページをアクセス禁止にするものの、
メンテナンス用のディレクトリはアクセスを解いているので、
メンテナンスページを無事に表示できるというやり方です。
htaccessで全体をアクセス禁止にすると、403エラーの画面になってしまうし、
メンテナンス用ページを作成してredirectさせようとすると、結局http://www.○○○.com/ 以下にファイルを置かなければいけないため、
redirectの処理が無限ループしてしまいます。
http://www.○○○.com/ 以下に、こちらのhtaccessをUP(属性604)
order deny,allow
deny from all
ErrorDocument 403 /mente/mente.html
http://www.○○○.com/mente/mente.htmlに、メンテナンスページを用意し
http://www.○○○.com/mente/以下に、こちらのhtaccessをUP(属性604)
Order allow,deny
Allow from All
Satisfy any
これは、http://www.○○○.com/以下のページをアクセス禁止にするものの、
メンテナンス用のディレクトリはアクセスを解いているので、
メンテナンスページを無事に表示できるというやり方です。
12:36 | comments(1) | - | - | -
Comment
初めまして。.htaccessファイルの無限ループについて調べていたところ、貴サイトに辿り着きました。
私も今、.htaccessファイルでアクセス制限をしようと試みているところでして、(多分なのですが)無限ループに陥って困っております。
貴サイトのこの記事と非常に似ているケースだと思い、紹介されている方法で.htaccessファイルに記述して試してみましたが、どうもうまくいきませんでした。
ここで質問させていただくのも失礼かとは思いましたが、どうにも解決策が見つけられず大変困っております。 是非お知恵を貸してはいただけませんでしょうか?
取り敢えず練習の意味で、Firefoxからのアクセスを制限、アクセスがあった場合は自作のエラーページである403.htmlへ飛ばす、ということを.htaccessファイルしてみたいと思い、下記の記述をした.htaccessファイルを作成し、http://www.○○○.com/index.html のある階層に配置しました。
/* 無限ループ回避 */
order deny,allow
deny from all
ErrorDocument 403 /err/403.html
/* 特定のブラウザだけを弾く */
SetEnvIf User-Agent "Firefox" Lilith
Order Allow,Deny
Allow from all
Deny from env=Lilith
ErrorDocument 403 /err/403.html
エラーページはerrフォルダを作成、この中に403.htmlと下記の記述をした.htaccessファイルを作成して配置しました。errフォルダはindex.htmlページがある1つ下の階層に位置します。
/* 無限ループ回避 */
Order allow,deny
Allow from All
Satisfy any
このように貴サイトでの記述を真似て試してみましたが、Firefoxからのアクセスを弾くことは出来たのですが、自作したエラーページへは飛びませんでした。
おそらくindex.htmlにアクセスした時点で弾くため、エラーページに飛ばないのではないかと推測しているのですが…。
間違った記述や配置の仕方がお解かりでしたら、是非教えていただけたらと思います。
初対面の方に大変失礼だとは思いましたが、お返事いただけたら幸いです。
宜しくお願い致します。
私も今、.htaccessファイルでアクセス制限をしようと試みているところでして、(多分なのですが)無限ループに陥って困っております。
貴サイトのこの記事と非常に似ているケースだと思い、紹介されている方法で.htaccessファイルに記述して試してみましたが、どうもうまくいきませんでした。
ここで質問させていただくのも失礼かとは思いましたが、どうにも解決策が見つけられず大変困っております。 是非お知恵を貸してはいただけませんでしょうか?
取り敢えず練習の意味で、Firefoxからのアクセスを制限、アクセスがあった場合は自作のエラーページである403.htmlへ飛ばす、ということを.htaccessファイルしてみたいと思い、下記の記述をした.htaccessファイルを作成し、http://www.○○○.com/index.html のある階層に配置しました。
/* 無限ループ回避 */
order deny,allow
deny from all
ErrorDocument 403 /err/403.html
/* 特定のブラウザだけを弾く */
SetEnvIf User-Agent "Firefox" Lilith
Order Allow,Deny
Allow from all
Deny from env=Lilith
ErrorDocument 403 /err/403.html
エラーページはerrフォルダを作成、この中に403.htmlと下記の記述をした.htaccessファイルを作成して配置しました。errフォルダはindex.htmlページがある1つ下の階層に位置します。
/* 無限ループ回避 */
Order allow,deny
Allow from All
Satisfy any
このように貴サイトでの記述を真似て試してみましたが、Firefoxからのアクセスを弾くことは出来たのですが、自作したエラーページへは飛びませんでした。
おそらくindex.htmlにアクセスした時点で弾くため、エラーページに飛ばないのではないかと推測しているのですが…。
間違った記述や配置の仕方がお解かりでしたら、是非教えていただけたらと思います。
初対面の方に大変失礼だとは思いましたが、お返事いただけたら幸いです。
宜しくお願い致します。
Posted by: yo5kg |at: 2009/06/06 12:02 AM
⇒ Tadashi (03/13)
⇒ yo5kg (06/06)
⇒ jumbo (04/25)
⇒ ぐみ (12/11)
⇒ eguti (06/04)
⇒ ビジログ (03/09)
⇒ nana (02/02)
⇒ TOM (01/22)
⇒ pon (11/09)
⇒ pon (11/09)