ベーシック認証について
2020-02-20
ベーシック認証を設定する際、いくつかの方法がありますが、
・.htaccess
・.htpasswd
という2つのファイルを作成し、FTPでサーバーにアップロードする方法が一般的かと思いますが、レンタルサーバーによっては、サーバーの管理画面から行える場合もあります。
当サイトはエックスサーバーを使用しており、サーバー管理画面から設定することができますが、今回は、健忘録として、記載しておきます。
.htaccess ファイルの作成
.htaccess ファイルは、通常、隠しファイルなので、WindowsのPCの設定によっては、表示されていない場合もあるかもしれませんが、フォルダの設定で、隠しフォルダを表示すると確認することができます。
既に、ファイルがある場合は、それを編集・追記などすれば良いのですが、新規で作成する際は、テキストエディターなどを使って作成する場合もあるかと思いますが、その際、ファイル名なし、拡張子[.htaccess]で保存は、できない場合もあるかもしれません。
その際は、一度、適当にファイル名をつけて、[テキスト.txt]などで、保存しておき、フォルダなどの一覧表示から、ファイル名を変更して、[.htaccess]とする方法をオススメします。
さて、[.htaccess]に記述内容ですが、下記が一例になります。
1 2 3 4 5 6 7 8 |
<Files ~ "^\.ht"> deny from all </Files> AuthUserFile /home/◯◯◯◯/◯◯◯◯/public_html/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user |
1-3 行目では、.htaccessや.htpasswdなどの.htで始まるファイルを見れないようにしています。
各行については、いろいろなサイト様で解説されていますので、省略させていただきます(笑)
4行目の[AuthUserFile]の部分のディレクトリの記述については、サイト環境などによって、随時変更になります。
また、以下のような内容を、上記の下に追記することで、IPアドレスなどの制限を設けることができます。
1 2 3 4 5 |
Satisfy any Order deny,allow Allow from 123.4.567.89 # 許可するIPアドレス Allow from 123.4.543.21 # 複数設定する場合は、1行ずつ追加 Deny from all |
[Satisfy]をanyにすることで、上記で設定したBasic認証か指定したIPアドレスかどちらかが通れば許可されるようになります。
.htpasswd ファイルの作成
認証をかけた際、必要になる[ユーザー]と[パスワード]を記述しておきますが、パスワードは暗号化しておかなければいけません。
パスワードの暗号化については、検索すれば、変換サイトがいろいろありますので、そちらを参考にして下さい。
変換された文字を[.htpasswd]に貼り付けて、保存すれば、完了です。
個人的に、よく利用させていただいているのが、下記のサイト様です。
・https://www.luft.co.jp/cgi/htpasswd.php
・https://tech-unlimited.com/makehtpasswd.html
作成したファイルのアップロード
今回、作成したファイルをFTPでそれぞれ、サーバーにアップロードすれば、設定完了です。
[.htaccess]と[.htpasswd]は必ず同じディレクトリにしなくてはいけないというわけではないのですが、[.htpasswd]は[.htaccess]に記載しているディレクトリにアップロードして下さい。
エックスサーバーでは、管理画面で作成した[.htpasswd]は別のディレクトリに保存されているようです。