- ベストアンサー
エラーページについて質問です。
カテゴリーが違っていたらすみません。 現在サーバーに独自のエラーページを設置したのですが、上手く表示されない時が有ります。 原因は分かっているのです! .htaccess内にエラーページまでのパスを/で始まる相対で記述していることが原因だと思います。 しかし、http~で始まる記述は無限ループに陥る可能性があるとの事で、ご法度らしいのですが本当でしょうか?ちなみにhttp~で始まる記述を行うと上手く表示されます。 相対パスで書くとディレクトリごとに複数エラーページを作らないといけないような感じなのですが、相対パスで記述して上手く反映される方法はないものでしょうか?? また何か別に対策など有りましたら、アドバイスいただけたら幸いです。 宜しくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。#3です。 一点確認ですが、.htaccessを全ディレクトリに入れてますか? /virtual/ユーザー名/public_html/.htaccess のみに書いておけば、 その下のディレクトリ全てに適用されるはずなのですが…… > 奥深いディレクトリに入っているものやCGIの掲示板等で404エラーを出すと表示されませんでした。 もし ・全部のディレクトリに.htaccessが存在している ・/virtual/ユーザー名/public_html/.htaccess には 「ErrorDocument 404 /error/404.html」のように書いているが、 そのほかのディレクトリには 「ErrorDocument 404 ../error/404.html」のように書いている ならば、理由はなんとなく想像が付くのですが……
その他の回答 (5)
- Code_Blue_Ocean
- ベストアンサー率33% (5/15)
#3です。 > えーっ、全部のディレクトリに入れなければならないのですか??知りませんでした。 すいません、書き方がまずかったですね。 1つだけでOKです。 一応、私のところだとそれでうまくいってます。 取り急ぎ
お礼
ありがとう御座います。 取りあえず私もご紹介いただいたサイトで色々試して見たいと思います。 がんばります。w
- Code_Blue_Ocean
- ベストアンサー率33% (5/15)
こんにちは。 #3です。 すいません。回答に一部間違いがありました。 正しくはドキュメントルートからのパスを指定しなければなりません。 ドキュメントルートが /virtual/ユーザー名/public_html/ で エラーメッセージが /virtual/ユーザー名/public_html/error/404.html なら ErrorDocument 404 /error/404.html でいけるのではないでしょうか?
お礼
Code_Blue_Oceanさん何度もありがとう御座います。 ErrorDocument 404 /error/404.htmlですが、やはり浅い階層では表示されますが、奥深いディレクトリに入っているものやCGIの掲示板等で404エラーを出すと表示されませんでした。 また一部では、画像やCSSを読み込んでくれず、エラーページがぐちゃぐちゃに表示されてしまいます。 私の設定が悪いのでしょうか??また。やはりhttp~始まる記述は良くないでしょうか?http~始まる記述をすると問題なくどの場所からも表示されるのですが・・・。 何度も何度もお手数おかけいたしますが、宜しくお願いいたします。
- Code_Blue_Ocean
- ベストアンサー率33% (5/15)
こんにちは。 例えばURLが http://www.example.com/~foo/error/404.html だとして、 サーバ上のコンテンツ格納パスが /home/foo/public_html だとすると、 /home/foo/public_html/error/404.html としてみてはいかがでしょうか?
お礼
ありがとう御座います。 私のサーバーですとパスがいかのようになります。 /virtual/ユーザー名/public_html/error/404.html これで設定した場合、指定したエラーページは表示されませんでした。(T_T)普通はこの設定で表示されるのでしょうか?? エラーページに画像を使用しているのですが、関係ないですよね?? 宜しくお願いいたします。
- php504
- ベストアンサー率42% (926/2160)
>上手く表示されない時が有ります。 ということは表示されるときもあるのでしょうか。 404は表示されるけど403は表示されないとかでしょうか。
お礼
ありがとう御座います。 >404は表示されるけど403は表示されないとかでしょうか。 いえ、そうではなく現在publickと同じ階層にerrorというディレクトリを作りその中に各種ページを入れています。 しかし、publickの中は物凄く沢山のディレクトリから構成されている為、一概に階層を伝えることが出来ないのです・・・。分かりにくいでしょうか?? もちろん指定した階層が変われば、エラーページの指定も異なってくるために表示できないのです。 宜しくお願いいたします。(分からなかったら再度補足いたします)
- php504
- ベストアンサー率42% (926/2160)
./や../で始まるのが相対パスで/で始まるのは絶対パスですよ。
お礼
ありがとう御座います。 そうなのですか・・・、すみません初心者なもので理解できていない部分が多々あるかと思います。 では、 /hoge/~始まる絶対パス?だと上手く表示されないページが出て、httpで始まる(なんというのでしょうか)表記だと上手く表示されます。 しかし、この場合CGI等でエラーが出たときが心配なのですが・・・引き続きアドバイスいただけたらと思います。
お礼
何度も本当にありがとう御座います!!! >一点確認ですが、.htaccessを全ディレクトリに入れてますか? えーっ、全部のディレクトリに入れなければならないのですか??知りませんでした。 エラーページの記述は、public_html内に1つだけ.htaccessが存在しています。全部に設置となると管理が大変ですね?仮にディレクトリが500個あれば全てに500個全てに設置するんですよね?? うーん、何か良い方法がないものでしょうか? URL参考になります!