.htaccess エラーページについて

このQ&Aのポイント
  • .htaccessでエラーページを自作する方法について困っています。
  • 404エラーページは表示されるが、403エラーページが正しく表示されない問題が発生しています。
  • 使用サーバーはロリポップで、ブラウザはsafariを使用しています。解決策や原因について教えていただきたいです。
回答を見る
  • ベストアンサー

.htaccess エラーページについて

.htaccessでエラーページを自作のものになるよう設定したいのですが、上手くできず、困っています。 自作したのは404と403のみ。 ErrorDocument 403 絶対パス ErrorDocument 404 絶対パス という記述です。 確認したところ404エラーページは難なく表示されるのですが、403に関しては再読み込みしないと自作のものにならず、「~を開こうとして多くのリダイレクトが発生しています。あるページへのリダイレクトが設定されているページを開いたときに、リダイレクト先のページから元のページにさらにリダイレクトが設定されている場合にこうした現象が起きる場合があります。」というページになり、リダイレクトループしてしまっているようなのです。 使用サーバーはロリポップ ブラウザはsafariです。 解決法又は原因など教えて下さると助かります。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

403エラーというのは「403 Forbidden」で、アクセスが禁止されたディレクトリやファイルにアクセスしようとした時に発生するエラーです。 オリジナルのエラーファイルが仮に 403error.html として、そのファイル自体がアクセス禁止のディレクトリに置かれている場合、403エラーが403エラーを引き起こし、無限ループを招きます。 (「~を開こうとして多くのリダイレクトが発生しています。」という説明はそういう意味です) 解決方法は、エラーファイルをエラー専用ディレクトリを用意するなどして(/error/403error.html など)他のアクセス制限と干渉しない階層に設置してあげることです。

safw1225
質問者

お礼

制限を解除したエラーファイルをつくりました。 助かりました。どうもありがとうございました!

関連するQ&A

  • 自作のエラーメッセージ作成について

    404エラーに対して自作のエラーメッセージを表示させたいのですがうまくいきません。 エラーメッセージ自体はerrフォルダに404.htmlという名称で作成しています。 具体的には、.htaccess内の記述 「ErrorDocument 404 http://アドレス/err/404.html」 このように絶対パスで記述すると、存在しないページのURLに飛んだ時自作メッセージが表示されるのですが、 「ErrorDocument 404 /err/404.html」というように相対パスで表記すると表示できません。 出来れば相対パスで記述して表示できるようにしたいのですが、どうしたら良いのでしょうか? ちなみに.htaccess及びerrフォルダはindex.htmlと同列に置いています。

    • ベストアンサー
    • HTML
  • .htaccessで403error時に表示するページの設定

    現在、.htaccessで403エラーになったときに表示されるページの設定をしているのですが、 作成した403用のページを表示できず、ブラウザのデフォルト403ページが表示されてしまっています。 .htaccess自体は正常に動作しているのを確認しているため、 ErrorDocumentに関連する記述が誤っていると思うのですが、どこがおかしいのかが分かりません。 どうぞご教授お願いいたします。 なお、403時に表示されるページのアドレスは、(サイトURL)/error/403.html、すでにサーバー上にアップ済です。 下記が現在記述している.htaccessになります。 AddHandler cgi-script htaccess SetEnvIf Accept-Language ko Lilith SetEnvIf Accept-Language en Lilith ErrorDocument 403 /error/403.html Order Allow,Deny Allow from all deny from env=Lilith deny from .ed.jp deny from .ac.jp

  • .htaccessでリダイレクト

    サイトのディレクトリ構造やファイル名を変えたため、 外部からのリンクが切れてしまっています。 .htaccessを設置したディレクトリ以下で ファイルが見つからない場合、TOPページにリダイレクト、 という動作を実現するにはどう記述すれば良いのでしょうか。 TOPページを http://www.hoge.com/ とすると、 とりあえず思いつくのは ErrorDocument 404 / なのですが、404エラーをエラー表示以外の リダイレクトに使うのが正しいのか分かりません。 こういう目的のリダイレクトの書式もあるのでしょうか。 よろしくお願いします。

  • .htaccessを使いエラーが起きたら飛ばす

    Apacheで.htaccessを使いアクセス制限をしようとしています。 そして403エラーが起きたら指定のファイルにリダイレクトするというのを試みているのですがうまくいきせん。 問題点を絞るべくなるべく簡単にしてみました。 a.phpファイル (http://xxx.yyy.co.jp/ に存在します) <?php print("a"); error_log("a"); ?> b.phpファイル (a.phpと同様にhttp://xxx.yyy.co.jp/ に存在します) <?php print("b"); error_log("b"); ?> .htaccessファイル ErrorDocument 403 http://xxx.yyy.co.jp/b.php deny from all <Files ~ "\.(html|php)$"> allow from all </Files> この.htaccessの意図は拡張子がhtmlとphpのファイルだけにアクセスを許可します。 そしてそれ以外でアクセスしてきて403エラー(forbidden)が出た場合b.phpにリダイレクトしようとしています。(話を簡単にするため他のエラーについては省略します) 問題が出る流れ 1:まずブラウザでhttp://xxx.yyy.co.jp/a.phpにアクセスします。 2:なぜか ErrorDocument 403 に引っかかり http://xxx.yyy.co.jp/b.php に飛んでしまいます。 もちろんこのとき http://xxx.yyy.co.jp/ に a.php はちゃんと存在しています。 よって「ErrorDocument 403 http://xxx.yyy.co.jp/b.php」をまるごと.htaccessから削除してもう一度アクセスしても当然403エラーは出ません。 ちなみに本当にエラーだった場合の処理はうまくいっていて、存在しないファイルで例えば下記のようなURLでアクセスをした場合は正しく http://xxx.yyy.co.jp/b.php に飛びます。 http://xxx.yyy.co.jp/a.ccc 問題は何故エラーでもないのにErrorDocument 403で飛んでしまうのかです。 やはり.htaccessの設定の仕方が悪いのでしょうか。

    • ベストアンサー
    • PHP
  • .htaccessのリダイレクトができない

    .htaccessに「Redirect *** ***」という記述をして、 ほかのページにリダイレクトさせようとしています。 しかし、どうしてもうまくいきません。 .htaccessに「DirectoryIndex」などほかの記述をしたところ、 うまく動作しているのでApacheの設定には問題がないと思います。 http://www.shtml.jp/htaccess/redirect.html このページとまったく同じように設定したのですが、 (もちろんパス名は違いますけど) 何かうまく動かない原因は考えられるでしょうか? よろしくお願いいたします。

  • 許可IP以外からアクセスがあった場合の自作エラーページ表示方法は?(htaccess)

    htaccessによって、ネットマスクでのアクセス制限をしています。 許可IP以外からアクセスがあった場合、自作のエラーページを表示させたいのですが、うまく表示されません。 アクセス制限とそのエラーに対して自作のエラーページを表示させる事はできないのでしょうか? htaccessの内容は下記の通りです。 ErrorDocument 403 /403.html ErrorDocument 404 /404.html order deny,allow deny from all allow from 123.45.67.8/24 上記のように記述しています。 htaccessファイルと自作エラーページは同じ階層に設置しています。 アクセス制限のみが有効になっており、自作エラーページ表示が無効になっています。 どなたかアドバイスをお願い致します。

  • htaccessのエラー制御について

    htaccessの中で ErrorDocument 403 を記述しページのアドレスを記入したらエラー番号に対するページを表示できるんですが、htpasswdでBASIC認証させた場合にIDパスワードがエラーの場合の対応するページというのを表示させたいのですができるのでしょうか? よろしくお願いします。

  • .htaccessは2つ置けないんでしょうか?

    携帯サイトをロリポップにて作成しています。 PCからアクセスした際、ソースを覗かれないようにするため IPアドレスによる制限をしています。 ファイル名.htaccess order deny,allow deny from all #Docomo IPアドレス #Vodafone IPアドレス #au(cdmaOne)とTu-ka IPアドレス #au(WIN) IPアドレス #au(BREW) IPアドレス 上記のファイルにてPCからのアクセスを防ぐ事が出来るのですが、 エラーページの設定も.htaccessにておこなっています。下記 ファイル名.htaccess ErrorDocument 401 http://URL ErrorDocument 403 http://URL ErrorDocument 404 http://URL ErrorDocument 500 http://URL 上記ファイルにてエラーページの設定は完了なのですが .htaccessを2つ置こうとすると、上書きされてしまい 一つだけになってしまいます。 2つの.htaccessを置きたい場合はどのようにしたら良いでしょうか? どなたかご存知の方、ご教授頂けると幸いです。 よろしくお願い致します。

  • .htaccess エラーページを変更したい

    403エラーページを404エラーページっぽく変更したく、以下のように.htaccessを記述してアスキーモードでアップしました。 サーバはさくらインターネットです。 ErrorDocument 403 /aaa/404.html わざと自分のIPをアクセス制限して表示させてみようとしたところ、いつもの403エラー画面が表示されてしまいます。 一体どうしてでしょうか……。

    • ベストアンサー
    • HTML
  • カスタマイズした404ページが設定できない

    404ページと.htaccessの格納場所は、 http://www.***1.jp/***2/***3/404.html http://www.***1.jp/***2/***3/.htaccess 1) .htaccessの記述が下記の場合… ErrorDocument 404 /***1/***2/404.html →404.htmlの画像、cssがきちんと表示されない 例えば、存在しないページhttp://www.***1.jp/***2/***3/***4/index.htmlへ飛ぼうとした場合に表示されたhtml内の画像やhrefを見てみると、http://www.***1.jp/***2/***3/***4/404.htmlを読もうとしている 2) .htaccessの記述が下記の場合… ErrorDocument 404 /404.html →カスタマイズした404ページが表示されず、下記文言が追記されている。 Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 3) .htaccessの記述が下記の場合… ErrorDocument 404 http://www.***1.jp/***2/***3/404.html 問題なく表示。でも、リダイレクトになってしまい、これはあまり推奨されてないようです。 アドバイスいただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう