最終的な効果は同様です (異なるブラウザのインターフェイスは異なります):
認証が失敗すると、http エラーが報告されます: 401 authorization required。
このような機能を実装するには、サーバーの構成を変更し、ログインするためのユーザー名とパスワードを設定する必要があります。
まず、Web サイトの nginx サーバー構成を変更する必要があります。ubuntu サーバーの場合、この構成ファイルは通常 /etc/nginx/sites-enabled/ にあります。たとえば、デフォルトの構成ファイル /etc/nginx を使用します。 /sites-enabled/ はここです。デフォルトは例です:
コードをコピーします コードは次のとおりです:
server {
server_name www.fancycedar.info
root /www/fancycedar
# ...
location / {
# 次の 2 行を追加します
auth_basic "restricted";
auth_basic_user_file htpasswd;
# .. .
}
# ...
}
次に、htpasswd ファイルを作成する必要があります。注意すべき詳細は次のとおりです:
htpasswd
のパスはnginx.confと同レベルのディレクトリで十分です。 Ubuntu サーバーの場合、通常は /etc/nginx/ の下にあります。
htpasswd の内容
各行は 1 人のユーザーに関するもので、形式はユーザー名:パスワードです。ただし、ここでのパスワードはプレーンテキストではなく、crypt(3) によって暗号化された文字列であることに注意してください。
php コードの一部を使用して、htpasswd でパスワードを生成できます。
コードをコピーします。 コードは次のとおりです。
//パスワード プレーン テキスト
$password = '何らかのパスワード' ;
// パスワードを暗号化します
$password = crypt($password,base64_encode($password));
// 暗号化されたパスワードを取得します
echo $password;
次に、文字列を htpasswd ファイルに書き込みます。
コードをコピーします。 コードは次のとおりです。
username1:xucqmk13tfooe
username2:yxtfb3xwkombm
...
htpasswd 権限
htpasswd ファイルの権限を変更する必要があります。次のコマンドを実行します。
コードをコピーします。コードは次のとおりです。
sudo chown root:www-data htpasswd
sudo chmod 640 htpasswd
準備はできていますか?
上記の準備が完了したら、nginx サーバーをリロードまたは再起動できます:
コードをコピーします。 コードは次のとおりです。
sudo /etc/init.d/nginx reload
# または
sudo /etc/init.d/nginx restart
以上がNginx で htpasswd を使用して Web サイトをパスワード保護する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。