本記事では、
- 特定のファイルのみ除外してBasic認証を設定したい
- 特定のディレクトリのみ除外してBasic認証を設定したい
というケースに対して、どのように.htaccessを使ったBasic認証を認証の設定方法を解説していきます。
特定のファイルを除外してBasic認証を設定する方法
ディレクトリ・ファイル構成例
htdocs/ ├── .htaccess ├── a.html ├── b.html └── reject.html
上記のディレクトリ・ファイル構成で、reject.htmlだけをBasic認証の対象外にしたい場合、設定は次のようになります。
.htaccessの設定
ディレクトリ・ファイル構成例のhtdocs直下の.htaccessには下記のように設定してください。
AuthUserFile /var/www/html/xxx/htdocs/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" Require valid-user <files "reject.html"> Satisfy Any </files>
AuthUserFileのパスは仮のものを指定していますのでご注意ください。
Filesディレクティブを使用して、特定のファイルを指定して、Satisfy AnyでBasic認証の対象外としています。
設定後の確認
設定が完了したら、動作の確認をしましょう。
確認する内容は、ディレクトリ・ファイル構成例の場合は下記となります。
- a.htmlにアクセスすると、Basic認証のダイアログが表示されること
- reject.htmlにアクセスし、Basic認証のダイアログが表示されないこと
既にBasic認証を通過している場合、挙動の確認ができないため、必ずブラウザのシークレットモードを使用して確認しましょう。
特定のディレクトリを除外してBasic認証を設定する方法
ディレクトリ・ファイル構成例
htdocs/ ├── .htaccess ・・・(1) ├── aaa/ │ └── sample.html ├── bbb/ │ └── sample.html └── reject_dir/ └── .htaccess ・・・(2) └── reject1.html └── reject2.html
上記のディレクトリ・ファイル構成で、reject_dirだけをBasic認証の対象外にしたい場合、設定は次のようになります。
.htaccessの設定
ディレクトリ・ファイルの構成例のhtdocs直下に設置されている.htaccessはいつも通りのBasic認証を設定してください。
AuthUserFile /var/www/html/xxx/htdocs/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" Require valid-user
AuthUserFileのパスは仮のものを指定していますのでご注意ください。
Basic認証の対象から除外したいディレクトリ(reject_dir)内にに.htaccessファイルを設置してその内容は下記としてください。
Satisfy Any
Satisfy Anyが書かれた.htaccessを設置することで、そのディレクトリがBasic認証の対象外となります。
設定後の確認
設定が完了したら、動作の確認をしましょう。
確認する内容は、ディレクトリ・ファイル構成例の場合は下記となります。
- aaa/sample.htmlにアクセスすると、Basic認証のダイアログが表示されること
- reject1.htmlにアクセスし、Basic認証のダイアログが表示されないこと
- reject2.htmlにアクセスし、Basic認証のダイアログが表示されないこと
既にBasic認証を通過している場合、挙動の確認ができないため、必ずブラウザのシークレットモードを使用して確認しましょう。