• ベストアンサー

エラーページについて質問です。

カテゴリーが違っていたらすみません。 現在サーバーに独自のエラーページを設置したのですが、上手く表示されない時が有ります。 原因は分かっているのです! .htaccess内にエラーページまでのパスを/で始まる相対で記述していることが原因だと思います。 しかし、http~で始まる記述は無限ループに陥る可能性があるとの事で、ご法度らしいのですが本当でしょうか?ちなみにhttp~で始まる記述を行うと上手く表示されます。 相対パスで書くとディレクトリごとに複数エラーページを作らないといけないような感じなのですが、相対パスで記述して上手く反映される方法はないものでしょうか?? また何か別に対策など有りましたら、アドバイスいただけたら幸いです。 宜しくお願いいたします。

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

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

こんにちは。#3です。 一点確認ですが、.htaccessを全ディレクトリに入れてますか? /virtual/ユーザー名/public_html/.htaccess のみに書いておけば、 その下のディレクトリ全てに適用されるはずなのですが…… > 奥深いディレクトリに入っているものやCGIの掲示板等で404エラーを出すと表示されませんでした。 もし  ・全部のディレクトリに.htaccessが存在している  ・/virtual/ユーザー名/public_html/.htaccess には   「ErrorDocument 404 /error/404.html」のように書いているが、   そのほかのディレクトリには   「ErrorDocument 404 ../error/404.html」のように書いている ならば、理由はなんとなく想像が付くのですが……

参考URL:
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/
momonga_Q
質問者

お礼

何度も本当にありがとう御座います!!! >一点確認ですが、.htaccessを全ディレクトリに入れてますか? えーっ、全部のディレクトリに入れなければならないのですか??知りませんでした。 エラーページの記述は、public_html内に1つだけ.htaccessが存在しています。全部に設置となると管理が大変ですね?仮にディレクトリが500個あれば全てに500個全てに設置するんですよね?? うーん、何か良い方法がないものでしょうか? URL参考になります!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

#3です。 > えーっ、全部のディレクトリに入れなければならないのですか??知りませんでした。 すいません、書き方がまずかったですね。 1つだけでOKです。 一応、私のところだとそれでうまくいってます。 取り急ぎ

momonga_Q
質問者

お礼

ありがとう御座います。 取りあえず私もご紹介いただいたサイトで色々試して見たいと思います。 がんばります。w

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

こんにちは。 #3です。 すいません。回答に一部間違いがありました。 正しくはドキュメントルートからのパスを指定しなければなりません。 ドキュメントルートが /virtual/ユーザー名/public_html/ で エラーメッセージが /virtual/ユーザー名/public_html/error/404.html なら ErrorDocument 404 /error/404.html でいけるのではないでしょうか?

参考URL:
http://httpd.apache.org/docs/2.1/ja/mod/core.html#errordocument
momonga_Q
質問者

お礼

Code_Blue_Oceanさん何度もありがとう御座います。 ErrorDocument 404 /error/404.htmlですが、やはり浅い階層では表示されますが、奥深いディレクトリに入っているものやCGIの掲示板等で404エラーを出すと表示されませんでした。 また一部では、画像やCSSを読み込んでくれず、エラーページがぐちゃぐちゃに表示されてしまいます。 私の設定が悪いのでしょうか??また。やはりhttp~始まる記述は良くないでしょうか?http~始まる記述をすると問題なくどの場所からも表示されるのですが・・・。 何度も何度もお手数おかけいたしますが、宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

こんにちは。 例えばURLが http://www.example.com/~foo/error/404.html だとして、 サーバ上のコンテンツ格納パスが /home/foo/public_html だとすると、 /home/foo/public_html/error/404.html としてみてはいかがでしょうか?

momonga_Q
質問者

お礼

ありがとう御座います。 私のサーバーですとパスがいかのようになります。 /virtual/ユーザー名/public_html/error/404.html これで設定した場合、指定したエラーページは表示されませんでした。(T_T)普通はこの設定で表示されるのでしょうか?? エラーページに画像を使用しているのですが、関係ないですよね?? 宜しくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

>上手く表示されない時が有ります。 ということは表示されるときもあるのでしょうか。 404は表示されるけど403は表示されないとかでしょうか。

momonga_Q
質問者

お礼

ありがとう御座います。 >404は表示されるけど403は表示されないとかでしょうか。 いえ、そうではなく現在publickと同じ階層にerrorというディレクトリを作りその中に各種ページを入れています。 しかし、publickの中は物凄く沢山のディレクトリから構成されている為、一概に階層を伝えることが出来ないのです・・・。分かりにくいでしょうか?? もちろん指定した階層が変われば、エラーページの指定も異なってくるために表示できないのです。 宜しくお願いいたします。(分からなかったら再度補足いたします)

全文を見る
すると、全ての回答が全文表示されます。
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

./や../で始まるのが相対パスで/で始まるのは絶対パスですよ。

momonga_Q
質問者

お礼

ありがとう御座います。 そうなのですか・・・、すみません初心者なもので理解できていない部分が多々あるかと思います。 では、 /hoge/~始まる絶対パス?だと上手く表示されないページが出て、httpで始まる(なんというのでしょうか)表記だと上手く表示されます。 しかし、この場合CGI等でエラーが出たときが心配なのですが・・・引き続きアドバイスいただけたらと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

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

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

    • ベストアンサー
    • HTML
  • htaccessでfirefoxのみエラーページに飛んでくれない

    サイトのトップディレクトリに.htaccessを設置しfirefoxのユーザーエージェントをはじいています。 自作のエラーページをerrというディレクトリの403.htmというファイルに飛ぶようにしています。 errディレクトリに.htaccessを設置し全て許可する設定にしています。 次のようなディレクトリ構成です。 http://xxxxx.com/.htaccess←firefoxのエージェントをはじく、403エラーはerr/403.htmに飛ばす http://xxxxx.com/err/.htaccess←全てのアクセスを許可 http://xxxxx.com/err/403.htm←403エラーの場合表示させる firefoxでhttp://xxxxx.com/にアクセスすると403エラーのページが表示されずapachの画面が表示されてしまいます。 http://xxxxx.com/err/403.htmにアクセスすると自作の403ページが表示されます。

  • .htaccessのエラー表示について

    /public_htmlに.htaccessを設置し、 /public_htmlの下のサブディレクトリにも .htaccessを設置しました。 そこでpublic_htmlでのエラー表示と サブディレクトリのエラー表示を別々に設定し、 別々のエラー表示を表示したいのですが、 上位ディレクトリの.htaccessのエラー表示の設定が 下位にも及んでしまい、うまくいきません。 何か良い方法があったら教えていただけませんか?

    • 締切済み
    • CGI
  • 無限ループについて教えてください。

    CGIの処理や.htaccess等で無限ループになるという記述を良く見かけるのですが、これは何がいけないのですか? 例えば、エラーページの表示で、404ページが表示されるように設定。しかしエラーページが存在しない。 エラー→表示するものがない→エラー→表示するものがない→エラー→表示するものがない→・・・・ こんな場合何か不都合があるのですか?例えば付加がかかって重くなる等・・・・。 初歩的質問ですが、宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • PHP 500エラー

    新着情報のPHPを導入しようと説明に従ってFTPにアップしたのですが、admin.phpのページが500エラーで開かず困っています。初心者です。 パーミッションも全て指定通りに設定し、サーバーはファーストサーバーなので、ディレクトリへ.htaccessファイルを置いています。(文字コードの指定用) (.htaccessファイルを設置していない場合エラーは出ませんがページが変換されず(?)記述の文章がそのまま表示されているだけのページがでます。) 知識不足でお恥ずかしいですが、どうかご教授頂けないでしょうか。

    • 締切済み
    • PHP
  • .htaccessで500エラーが出ます

    はじめまして。 アクセス制限をかけたいディレクトリに.htaccessを作成し、 アップをすると500エラーでページが表示されません。 記述した内容は下記で ---------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> AuthUserFile /files/htaccess/pw/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow ---------- /files/htaccess/pw/.htpasswd のディレクトリに.htpasswdをアップしました。 500エラーの原因をいろいろ調べて、 転送モードはアスキー、文字コードはUTF-8、パーミッションは604、 最後の行に改行を入れるなど、 すべて実践してみたのですが、 一向にページが表示されません。 試しに.htaccessのファイルを削除するとページは表示されます。 自分ではもう全くお手上げ状態なので、 どなたか原因がわかる方がいらっしゃったら 教えていただければと思います。 よろしくお願いします。

  • ページを閉じるとエラーが発生します。

    インターネットのページを閉じるとき別の白いページが開かれて「指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性があります。」というようなエラーが出てきて、それの「OK」か「×」を押したらまた同じページとエラーが出てくる無限ループが発生します。フォルダ等を閉じるときは何も問題はありませんでした。 エラーが発生する前にタスクマネで閉じればエラーは発生しません。 たまに一定種類(?)のリンクを押すと白いページも一緒に開かれたり、リンク先が白かったりします。 この症状の解決策を知ってる方がいましたら、教えてください。 お願いします。

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

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

    • ベストアンサー
    • HTML
  • リダイレクトのhtaccessを置くと403エラー

    perlで書いたCGIファイルがあるのですが、スマホ用のリダイレクトhtaccessファイルをトップディレクトリに置いた所、CGIのページが403エラーになってしまいました。 .htaccessファイルを外すと正常に表示するので、原因は.htaccessなのですが、理由が思い当たりません。 CGIのソースは出せないですが、お問い合せフォーム用のCGIです。 何かお気づきの点がありましたら助言お願い致します。 ● .htaccess(トップディレクトリに設置) <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPhone|Android.*Mobile|Windows.*Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / </IfModule> ● ディレクトリ構造 /index.html・・・トップページ /.htaccess・・・上記内容 /contact/all/index.cgi・・・403エラーになるCGI /contact/all/.htaccess・・・「Options ExecCGI」のみ記述 /sp/・・・スマホ用のリダイレクト先ディレクトリ(以下略)