• ベストアンサー

ベーシック認証時、キャンセルでのエラー処理

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

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

  • ベストアンサー
  • uwi
  • ベストアンサー率74% (55/74)
回答No.1

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は表示されない(できない)。 以上に気をつけて設定してみてください。

yoinakasan
質問者

補足

ご指導ありがとうございました。 以下に .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/ 大変に申し訳ありませんが、続けてご教授ください。

その他の回答 (1)

  • uwi
  • ベストアンサー率74% (55/74)
回答No.2

最後 の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に移動させるのが簡単かと思います。

yoinakasan
質問者

お礼

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

関連するQ&A