1

サイトのディレクトリをパスワードで保護しようとしています。ディレクトリにアクセスするとパスワードプロンプトが表示されるように.htaccessを機能させることができますが、.htpasswdファイルに保存した正しいクレデンシャルを入力するとアクセスが許可されません。パスワードプロンプトが再びポップアップします。

.htaccessファイルの.htpasswdファイルへのパスに問題があると思います。ドキュメントルート(_SERVER ["DOCUMENT_ROOT"])を確認しましたが、ルートが次のようになっていることがわかります。

/var/www/vhosts/myurl.info/httpdocs

だから私の.htaccessは次のようになります:

AuthName "Restricted Area"
AuthType Basic 
AuthUserFile /var/www/vhosts/myurl.info/httpdocs/.htpasswd 
AuthGroupFile /dev/null 
require valid-user

.htpasswdをルートドキュメントフォルダー(httpdocs)に配置しました。

私が間違っていることについて何か考えはありますか?すべてが私には正しいように見えます。

4

3 に答える 3

5

パスが無効な場合は、500エラーなどが発生します。ブラウザはパスワードの入力を求めるので、おそらくパスは正しいです。ただし、htpasswdを正しく生成したことを確認する必要があります。これを確認してください-http ://www.htaccesstools.com/htpasswd-generator/

于 2012-10-29T13:56:23.710 に答える
4

.htpasswdがの形式であることを確認してください。次のタイプにすることができますuser:passwordhashpasswordhash

  • CRYPT(一種の暗号化ハッシュ。最初の8文字のみがサポートされているため、8文字より長いパスワードを選択しないように注意してください)
  • MD5MD5(暗号化ハッシュに少し似た、関数を利用するApache固有のアルゴリズム)
  • SHA1(パスワードごとに考えられる結果は1つだけなので、ハッカーがファイルを取得できた場合は、結果のハッシュを元に戻すことができ.htpasswdます)
  • プレーンテキスト(この形式はいつでも作成できますが、「httpdデーモンはWindows、Netware、およびTPFでのみプレーンテキストのパスワードを受け入れる」ことに注意してください。また、ハッカーがファイルを取得するとすべてのパスワードを知っているため、プレーンテキストを使用することは安全ではありません。 )。

通常はを選択CRYPTしますが、パスワードが長い場合は、MD5またはを検討してくださいSHA1。Linuxではサポートされておらず、危険であるため、プレーンテキストを使用しないでください。

于 2012-10-29T14:01:09.980 に答える
0

最初に「AuthGroupFile /dev/null」行を削除してみてください - グループファイルを使用していない場合は指定しません...

それでも解決しない場合は、apache の error.log を参照してください。ヒントが得られます。error.log の関連部分をここに投稿します...

于 2012-10-29T12:57:50.873 に答える