プログラミング

Apacheで.htaccessを使ってBasic認証(パスワード)を設定する

.htaccessを作成し、以下を記述。
AuthUserfileを、公開ディレクトリのルートディレクトリに書き換えてください。
.htpasswdはあとで生成します。

# Basic認証

AuthUserfile /home/yuis/yuis.xsrv.jp/public_html/.htpasswd
AuthGroupfile /dev/null
AuthName "Enter username and password."
AuthType Basic
require valid-user

.htpasswdを生成する

.htpasswdという、パスワード情報が記載されたファイルを生成します。
僕はここで小一時間ハマったのですが、このファイルは、単に書けばいいというわけではなく、
コマンドで生成して上げる必要があります。

まぁつまり、

cat << EOT >> .htpasswd
username:password

みたいに手動でファイルを作成して、ユーザー名とパスワードを書くのは意味ないんですね。

僕はセキュリティとか知らないので直接作成してあげるものとばかり思っていましたが、コマンドで生成して上げる必要があるってことです。

では、.htpasswdの作り方。

# cd で公開ディレクトリのルートディレクトリへ移動。
cd  /home/yuis/yuis.xsrv.jp/public_html/

# パスワードを生成。
# パスワードが見えてしまうので注意。
# htpasswd -b -c .htpasswd [ユーザー名] [パスワード]
htpasswd -b -c .htpasswd yuis password
# or
# 一般的な生成方法
htpasswd -c .htpasswd yuis

これで、/home/yuis/yuis.xsrv.jp/public_html/.htpasswdが生成できたわけで、このファイルは先程のAuthUserfile、パスワードを設置したいディレクトリの.htaccessで指定されているので、
準備はできました。

では、実際にページにアクセスして検証してみましょう。

https://i.imgur.com/xJ5OWFG.png

こんな感じで、パスワードとユーザー名を要求されます。

先程のユーザー名とパスワードを入力して…

表示されましたでしょうか。

500 internal server errorが出た場合は、何かが間違っているということらしいですので、色々見直してみてください。

参考

https://qiita.com/yuwaita/items/e406c645ae8d0cc3c3fa
http://www.umin.ac.jp/hp-coordinator/man/htaccess.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です