プロが教えるわが家の防犯対策術!

HPで.htaccessを使用して、アクセス制限をしているのですが、許可していない場合、キャンセルで戻りたいのです。キャンセルクリックで エラー401が発生します。 HP上のどこかへ戻したいのですが、どのようにすればよいでしょうか?

A 回答 (2件)

ErrorDocument で指定すれば可能ですが、間違うことが多いです。


ErrorDocument 401 /error.html

※ httpなどから始まることはできない。(無視される。何故そうなるかは知りたい場合は検索してください。)
× ErrorDocument 401 http://www.example.co.jp/error.html

※ 最初 / はパスではなくドキュメントルート(サーバの設定次第で変動)を表す。
ErrorDocument 401 /error.html なら http://~~.jp/error.html
ErrorDocument 401 /abcd/error.html なら http://~~.jp/abcd/error.html

※認証失敗してるので.htaccessと同じディレクトリあるファイルを指定しても意味がない。(つまりルートで認証した場合はエラーを変更することが難しくなる。)
/abcd/ を .htaccess で認証しつつ
ErrorDocument 401 /abcd/error.html
をしてもerror.htmlは表示されない(できない)。

以上に気をつけて設定してみてください。

この回答への補足

ご指導ありがとうございました。
以下に .htaccess を添付します。チェックしていただけませんでしょうか?
AuthUserFile /home/sites/www.icu-cen.jp/web/ch4/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
ErrorDocument 401 /www.icu-cen.jp/web/index.html/

大変に申し訳ありませんが、続けてご教授ください。

補足日時:2010/01/29 17:34
    • good
    • 0

最後 のErrorDocument はパスではなくドキュメントルートなので


ErrorDocument 401 /index.html
とすることでhttp://~~.jp/index.htmlの内容を表示することになると思いますが、URLは http://~~.jp/ch4/index.html となります。
つまり http://~~.jp/index.html の index.html のHTMLに相対パスが含まれている場合は、画像やリンクなどが正しくならない可能性があります。

index.htmlを書きなおすのは現実的ではないと思いますので、
ErrorDocument 401 /jump.html
などとしてjump.htmlからMETAタグやjavascriptなどを用いて、http://~~.jp/index.htmlに移動させるのが簡単かと思います。
    • good
    • 0
この回答へのお礼

2度のご指導ありがとうございました。
jump.html を作成して、実行しました。
きちんと戻るようになりました。 今日は午後から悩んでいましたので、感謝しています。
HPはあまり経験がなく、よちよち歩きで作成しています。
今後ともご指導いただけますようよろしくお願いいたします。

お礼日時:2010/01/29 19:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!