超簡単!サイトにベーシック認証をかける方法

こんにちは!Takuya.B(@TB_IQ)です。

運営しているサイトにアクセス制限をかけたい場合ってありますよね。コミュニティを運営していて、その専用サイトとか特に。

その場合によく用いられるのがベーシック認証。セキュリティとかを本気で考えるなら話は別ですが、とりあえずアクセス制限をかけたい場合には便利です。

実装方法もとても簡単なので解説します!

スポンサーリンク

ベーシック認証のかけ方

ベーシック認証をかけるために作成するファイルは .htaccess.htpasswd の2つです。

.htaccess の書き方

ベーシック認証をかけるために .htaccess に記述する最低限の項目は以下。

AuthType BASIC
AuthName "Please enter your ID and password"
AuthUserFile /.htpasswdまでのフルパス/.htpasswd
require valid-user

各項目の説明をしていきます。

AuthType

認証方式を記述します。認証方式には ベーシック認証ダイジェスト認証 の2種類があります。

今回はベーシック認証なので AuthType BASIC と記述します。

ちなみにベーシック認証はBASE64で変換。ダイジェスト認証はMD5というハッシュ関数を用いて暗号化しているので、ベーシック認証よりダイジェスト認証のほうが安全です。

AuthName

ダイアログに表示される文章を記述します。GoogleChromeやSafariで確認してみたが、表示されませんでしたが...。

とりあえず AuthName "Please enter your ID and password" くらい書いておくと良いかも。

AuthUserFile

後述する .htaccess を設置した階層までのフルパス(ルートディレクトリからの絶対パス)を記述します。

サイト全体にベーシック認証をかけたい場合はドキュメントルート直下に .htpasswd を設置するので AuthUserFile /ドキュメントルートまでのフルパス/.htaccess と記述します。

例えば、エックスサーバーを利用している場合は AuthUserFile /home/サーバーID/ドメイン名/public_html/.htpasswd となります。

大手サーバー会社(エックスサーバーなど)のルートディレクトリまでのフルパスは以下サイトが参考になります!

require

アクセス可能なユーザーを指定することができます。基本的に require valid-user としておけば問題ありません。

例えば、 .htaccess に複数ユーザーを記述していた場合に特定のユーザーのみをアクセスさせたい場合は require user ユーザーID のように記述します。

.htpasswd の書き方

.htpasswd ファイルには認証に用いるユーザーIDとパスワードを合わせた文字列を記述します。ですが、パスワードは変換されているので、自分で作成することができません。

そこで、こちらのサイトなどを利用して .htpasswd に記述する文字列を生成しましょう。

文字列は ユーザーID:パスワード で生成されるので .htpasswd に記述したら保存。

あとは、ドキュメントルートに .htaccess.htpasswd を設置したら完了です!

スポンサーリンク

※サブディレクトリや特定のカテゴリにのみベーシック認証をかけたい場合などについては近日中に追記予定です。

About me
Takuya.B
大学院博士課程まで進学して宇宙系の研究に取り組むも中退。現在は本業iOSエンジニアとして勤務する傍ら、副業として個人ブロガー向けのWordPressカスタマイズサービスに取り組んでいる。

WordPressテーマ『MIKA』製作者でありブログサポートコミュニティ『Tea Room』運営。