特定のファイルやディレクトリを除外してBasic認証を設定する方法

特定のファイルやディレクトリを除外してBasic認証を設定する方法

本記事では、

  • 特定のファイルのみ除外して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認証を通過している場合、挙動の確認ができないため、必ずブラウザのシークレットモードを使用して確認しましょう。

よかったらシェアしてね!
目次
閉じる