
・Basic認証ってどうやってかけるの?
こんな疑問にお答えします。
下記のようにユーザー名とパスワードを入力したら閲覧できるサイトありますよね↓

このように閲覧する人を制限する実装が、Basic認証です。
実はこれ簡単に実装できちゃいます。

すぐにできるよ!
ということで、この記事では「Basic認証のかけ方」について解説していきます!
Basic認証のかけ方
ちなみにコーディング時に使う「.htaccess」の記事もまとめております↓

目次
【簡単】Basic認証のかけ方の基本【.htaccess/.htpasswd】
今回は「.htaccess/.htpasswd」の2ファイルを使ったBasic認証のかけ方を紹介します。
その場合、基本的な使い方としては下記になります↓
- 「.htaccess」でBasic認証の定義をする
- 「.htpasswd」でユーザー名とパスワードを定義する
これをふまえて、かけ方を紹介していきますね。
【簡単】Basic認証のかけ方を解説【.htaccess/.htpasswd】
Basic認証のかけ方は下記の手順です。
- 「.htaccess」を用意
- 「sample.php」を使いパスをコピペ
- 「.htpasswd」を用意
- サーバーにファイルをアップ
1つずつ見ていきましょう。
まず「.htaccess」ファイルを用意して、下記を記述します。
AuthType Basic
AuthName "Enter ID and password"
AuthUserFile /ここにパスを記述/.htpasswd
require valid-user
AuthType Basic | Basic認証を使うという合図 |
AuthName | Basic認証時にでる文字。 日本語だと文字化けする可能性あり。英語が望ましい。 |
AuthUserFile | 「.htpasswd」ファイルがあるパスを記述 |
require valid-user | 全ユーザーに対してBasic認証をかけるという定義 |
2行目と3行目については、ご自身の案件により書き換える必要があります。
ただ3行目の「パス」に関しては、サーバールートから記述しなければなりません。
このパスが正しくないと、「.htaccess」ファイルが「.htpasswd」を見つけることができません。そのため➁のsample.phpを使います!
パスを正しく記述するために「sample.php」を使います。
下記コードを記述します。
<?php echo __FILE__; ?>
このコードを実行すると、現在のファイルのパスと名前が出力されます。
その後「sample.php」を、Basic認証をかけるディレクトリに対してFTPでアップロード。
検索すると下記のように反映されます↓

このパスをコピペして「sample.php」部分を「.htpasswd」に書き換えます。
/xxx/xxx/xxx/xxx/.htpasswd
で、このパスを➀で紹介した「.htaccess」の3行目に書き換えましょう↓
AuthType Basic
AuthName "Enter ID and password"
AuthUserFile /xxx/xxx/xxx/xxx/.htpasswd
require valid-user
これで「.htpasswd」までの正しいパスを記述することができました。
(※記述後は、必ずsample.phpファイルをサーバーから削除しておく)
続いて「.htpasswd」にユーザー名とパスワードを定義していきます。
記述としては下記です↓
id:password
「:」を挟むようにします。
例として「ユーザー名がtest」「パスワードをpass」にするとしましょう。
するとこうなります↓
test:evY3b2jjYmfgQ
この一文だけ記述すればOK。
記述するパスワードは必ず暗号化します。
下記ツールを使えば一発で生成してくれますよ↓
https://tech-unlimited.com/makehtpasswd.html

あとは実際にサーバーに「.htaccess」と「.htpasswd」ファイルをアップロードしましょう。
下記のようにBasic認証がかかっていて、ユーザー名・パスワードを記述して閲覧できれば実装完成です!

Filesでくくってあげれば、特定ファイルのみにBasic認証をかけることができちゃいます。
<Files ファイル名>
AuthType Basic
AuthName "Enter ID and password"
AuthUserFile /xxx/xxx/xxx/xxx/.htpasswd
require valid-user
</Files>
下記みたいに記述しましょう↓
<Files index.html>
AuthType Basic
AuthName "Enter ID and password"
AuthUserFile /xxx/xxx/xxx/xxx/.htpasswd
require valid-user
</Files>
【簡単】Basic認証のかけ方を解説【.htaccess/.htpasswd】:まとめ
- 「.htaccess」を用意
- 「sample.php」を使いパスをコピペ
- 「.htpasswd」を用意
- サーバーにファイルをアップ

ベーシック認証をかけるときは試してみてね!
ちなみにコーディング時に使う「.htaccess」の記事もまとめております↓
