
私は nginx を使用していますが、ディレクトリをパスワードで保護し、ログイン情報を入力すると、403 エラーが発生します (:O)
場所 ~ ^/documents { auth_basic "アクセスが制限されています。"; #古い行。 # auth_basic_user_file /private/pass; #改行。 auth_basic_user_file /var/www/site.com/private/pass; }
パスファイルは次のようになります
thisID:thisPass: こんにちはコメント!
何かヒントはありますか?
答え1
一致しない場合でも、エラーが発生します...
パスファイルは次のようになります
thisID:thisPass: こんにちはコメント!
パスワードは実際に暗号化されていると想定していますか? そうあるべきだと思います。そのパスワード ファイルに人間が判読できるパスワードを単純に入力できるとは思えません。
nginx がそのファイルでエンコード/暗号化されたパスワードを期待している場合、保存されているパスワードが別の形式を使用している場合、一致するものを見つけることはできません。(一致するものを見つけるために、ユーザーが入力したパスワードをエンコードし、そのエンコードされた入力をファイルからわかっているエンコードされたパスワードと比較します。) そして実際、ドキュメント、パスワードはcrypt(3)関数でエンコードする必要があります。Apacheのhtpasswdプログラムを使用してパスワードファイルを作成できます。
これはまだ実際のエラー メッセージを説明するものではありませんが、パスワード ファイルに人間が判読できるパスワードが含まれている場合、確実に または が生成され402 Unauthorized
ます403 Forbidden
。
このような暗号化されたパスワードはオンラインでも作成できます。さまざまなウェブサイト。
答え2
この種の問題で苦労した私の経験では、コンピューターがファイルまたはディレクトリが存在しないと表示しても、実際には存在しないのです。:-)
サーバーのルートからの相対パスでファイルを探してみてください。
auth_basic_user_file /private/pass;
答え3
場所/ファイル パスが意図したとおりに一致していないのではないかと思います。ファイル パスに関する構文は確実に正しいですか?
また、サーバーは問題のパスワード ファイルへの読み取りアクセス権を持っていますか?