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

ホームページのproducts.htmlというページにあらかじめ認証しておいた、IDとパスワードを入力しないと、閲覧できないようなページを作成しようとしているのですが、うまくいきません。
index.htmlからproducts.htmlのリンクをクリックすると、IDとパスワードが入力できる小さなウィンドウが開くのですが、.htpasswdにあらかじめ登録しておいたIDとパスワードを入力しても、なんの変化もなく、続けて入力をすると、「Authorization Required This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.」というエラーページになってしまいます。
いろいろ試したのですが、うまくいきませんので、改善方法をご教授頂ければと存じます。

【.htaccessの記述】
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Options -Indexes
AuthUserFile /products/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
※テキストで記述をして、サーバにアップするときにffftpソフトで.htaccessに変換しています。(アスキー転送モード)

【.htpasswdの記述】
123:○○○○○○
※テキストで記述をして、サーバにアップするときにffftpソフトで.htpasswdに変換しています。(アスキー転送モード)
※パスワード生成元:http://www.luft.co.jp/cgi/htpasswd.php

【サーバ】
ゼロ・ウェブ・サーバ
※無料のレンタルサーバで.htaccessが使用可能との記載がありました。

【ホームページの階層(ディレクトリ)】
index.html
productsフォルダ━products.html
processingフォルダ━processing.html
※実験用のためhtmlページは3ページしかありません。
※.htaccessと.htpasswdのファイルはproductsフォルダにアップしています。

A 回答 (2件)

AuthUserFile /products/.htpasswd



をサーバのフルパスにしてみるとどうでしょう?

参照URLに説明があるのですが、サーバ管理者とかじゃないと興味ないと思います(ふーんって程度でいいと思います)

この設定だとサーバのトップディレクトリ(フォルダ)の直下に products ってディレクトリ(フォルダ)があって、そこの下の .htaccess を参照している気がします。

サーバは多分Windowsとは違うのですが、Windows で例えると
  C:¥products¥.htpasswd
にパスワードファイルがあるように思っている。

でも、実際には
  C:¥お客様フォルダ¥会員ID¥public_html¥products¥.htpasswd
のような雰囲気で構成されているはずです。(例なので実際とは違いますよ)

お客様のホームディレクトリとか、public_html の位置とか、そんな感じで説明が届いていたりしませんか?もしくはFTP接続したときに画面のどこかに表示されているとか?
(# ftp の場合はシステムファイルをユーザに隠すために、トップディレクトリの位置を変えることが多いので、あてに出来ないかもしれません)

なので、
AuthUserFile /なんか指定されたフォルダ/products/.htpasswd

と書き換えてみてください。


パスワードの作成は、作成されたURLのもので大丈夫でしょう。

参考URL:http://httpd.apache.org/docs/2.0/mod/mod_auth.ht …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。できました!
ご指示のとおり、サーバ管理人に問い合わせたところ、フルパスをご指摘いただき、先ほど試したところ、問題なく機能致しました。(しかもサーバの管理ページに自分のフルパスが載っているのに見落としていました・・・。)

お礼日時:2010/11/30 15:02

>続けて入力をすると、


>(略)
>というエラーページになってしまいます。
これは「.htpasswdによるBasic認証を行ったが、入力されたユーザーIDかパスワードのどちらか、または、両方が間違っている」って言うエラー。
 
>※パスワード生成元:http://www.luft.co.jp/cgi/htpasswd.php
>【サーバ】
>ゼロ・ウェブ・サーバ
 
「貴方がパスワード生成に使用したサイトのパスワードエンコード方式」と「ゼロ・ウェブ・サーバが採用しているパスワードエンコード方式」が「同じ方式である」と言う保証はどこにもありません。
 
ある方式で「ABC」からパスワードをエンコードしたのが「j$s8@h」になったからと言って、すべての方式で「ABCからパスワードをエンコードするとj$s8@hになる」とは限りません。
 
パスワードのエンコード方式は、OSが数種類あり、WEBサーバープログラムも数種類あるので、方式が幾つもあります(エンコード方式は「この方式に統一しよう」と言う事になってはいるが、無料で使える古いOSや無料で使える古いサーバープログラムを使っている場合、統一されてない古い方式になっている可能性がある。無料のレンタルサーバーでは特に)
 
また、ゼロ・ウェブ・サーバが「.htaccessが使用可能である」と言っていても「.htpasswdも使用可能である」と言う保証もありません。
 
もし、ゼロ・ウェブ・サーバで.htpasswdが使えるのだとしたら、必ず、ゼロ・ウェブ・サーバのサポートページかどこかに「パスワードのエンコード文字列の生成ページ」がある筈です。
 
ゼロ・ウェブ・サーバで使用する.htpasswdのエンコード済みパスワードは、ゼロ・ウェブ・サーバ上ででしか生成できないと思って下さい。

この回答への補足

早速のご回答ありがとうございます。
当方手探りでホームページを作っているので恥ずかしい限りですが、少しずつ理解してきました。
ゼロ・ウェブ・サーバにて調べたところ、.htaccessの利用方法はこちらと記載があり、下記URLにたどり着きます。
http://htaccess.pasoa.com/pass.htm
このURLに.htpasswdの文字列生成ページがありましたが、「暗号化パスワード作成」ボタンをクリックしても生成されていないようです・・・・

補足日時:2010/11/29 14:39
    • good
    • 0

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