• 締切済み

ベーシック認証前にIDとパスワードを知らせる方法は?

いわゆる会員向けの認証ではなく、ロボットを遮断する手段としてベーシック認証を使っています。 IDとパスワードは画像によって提供しています。 認証に失敗したときは、401エラーの代替ドキュメントの中でIDとパスワードを告知するこは出来ますが、認証前にできないでしょうか? と言う質問です。 例えば、 /home/hoge/hogehoge/nantoka/index.html /home/hoge/hogehoge/kantoka/index.html /home/hoge/hogehoge/dondoko/index.html というサイトがあったとして、 .htaccessをhogehogeディレクトリに、 パスワードを記した、各index.htmlに対応する告知ファイル(この中で各index.htmlにリンクを張る)、をhomeディレクトリに置くことで事前に見せることは可能ですが、 これだと外部からリンクを張って貰うときにそのことを告知しなければ ならなくなるし、ファイルも多くなり、とても実用に耐えるものでは ありません。 なにかヨイ方法はないでしょうか?

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

すみませんでした。ErrorDocument 401 で指定したページが 表示されるより前に、認証パネルが出てしまうということですね。 そこが理解できていませんでした。 お使いのサーバでフォーム認証が使えるとぴったりのケースですが、 http://httpd.apache.org/docs/trunk/mod/mod_auth_form.html http://module.jp/blog/mod_auth_form3.html 自前のサーバでないと難しいと思います。 他にはよい方法をしらないので、もし見つけたら改めて回答させて もらいます。

noname#181870
質問者

補足

アドバイスありごとうございます。 「フォーム認証」と言うのですね。この言葉すら知りませんでした。 で、ネットで調べてみましたが、私なりに大体のイメージを描いています。 まず、.htaccessにRewriteCondで条件を設定して、RewriteRuleでマッチしたら認証CGIに飛ばすと言うイメージを持っています。 RewriteEngine on RewriteCond ~かくかく~ RewriteCond ~しかじか~ RewriteRule ~マッチしたら 認証.cgi ~ RewriteEngine off で、認証CGIを呼び出すまではイメージできたのですが、認証に成功、 或いは失敗した場合の処理の情報が得られていない状況です。 つまり、要求されたファイルの返し方が解らない状況です。 私の「寝床」のサーバで、RewriteEngineが使えるか試してみたいと 思います。 なにか情報がありましたらお願いします。

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

なぜ認証に失敗したときではなく、認証前にしたいのでしょうか。 どんな違いを意図しているのでしょうか。 いまのままでは何が問題なのでしょうか。 > ロボットを遮断する手段としてベーシック認証を使っています。 ということであれば、robots.txt ではだめですか。

noname#181870
質問者

補足

ご回答ありがとうございます。 TOPページにはIDとパスワードが画像によって提供されていますので、 そこから入ってくる人はイイのですが、認証のかかったページに外部からリンクが張られた場合、いきなり認証ダイアログが出てきてしまうので、その前にIDとパスを知らせるヨイ方法は無いものか?という質問です。 >robots.txt ではだめですか。 robots.txt を無視する「ならずもの」ロボットがあるので、やりたくないことをやっています。 (ボクが使っているWebスペースはrobots.txtが使えないのですが、これを守らないなら、ロボットメタも守らないだろうと...(笑)) .htaccsessで(ロボット向けに)IP,UA制限も行っていますが、変えられたら突破できますので、認証をかけるのが一番と考えています。

関連するQ&A

専門家に質問してみよう