fantiaはじめました!無料素材やAI、PSDを配布中です。

【ベーシック認証】特定のファイルだけBasic認証を設定する方法

この記事を読むのに必要な時間は約 4 分です。

Basic認証(ベーシック認証)を設定すると、ファイルやディレクトリにアクセス制限をかけることができます。

通常アクセス制限をかけたいディレクトリに「.htaccess」を配置し、ディレクトリ丸ごとに対してBasic認証(ベーシック認証)を設定します。
通常のBasic認証(ベーシック認証)の詳しい設定方法はコチラで解説いています。

今回は「ディレクトリ丸ごと」ではなく「ディレクトリ内の特定のファイルのみ」に対してBasic認証(ベーシック認証)を設定する方法を解説します。

ベーシック認証を設定するファイルのサンプル構造

.htaccessを配置するディレクトリ構造のサンプルです。

.htaccessを設定する

「index.html」のみに対してベーシック認証を設定する方法です。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /home/hugahuga/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
order deny,allow
<Files index.html>
require valid-user
</Files>

AuthUserFile /home/hugahuga/hogehoge/.htpasswd
に記述している
/home/hugahuga/hogehoge/.htpasswd
上記パスはフルパスで記述します。

フルパスが分からない場合はコチラで調べ方を詳しく解説しています。

複数のファイルにベーシック認証を設定する

例えば「index.html」と「inquiry.php」と言う風に、複数のファイルに対してベーシック認証を設定する方法です。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /home/hugahuga/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
order deny,allow
<Files ~ (index.html|inquiry.php)>
require valid-user
</Files>

ファイル単体だと
<Files index.html>
ですが…

複数ファイルだと
<Files ~ (index.html|inquiry.php)>
のような記述となります。

「*」を使用するとワイルドカードで指定することができます。

おわりに

以上、特定のファイルにBasic認証(ベーシック認証)を設定する方法でした。
ディレクトリ単位でなく、ファイル単位でBasic認証(ベーシック認証)を設定したくなった際に参考にしてください。
割と使う機会が多いBasic認証(ベーシック認証)の設定方法です。

ではまた!