HTTP 基本認証をルートディレクトリにのみ適用する

HTTP 基本認証をルートディレクトリにのみ適用する

ルート ディレクトリのみ認証が必要な、複数ディレクトリのプレーン Web アプリケーションをセットアップしました。他のすべてのサブディレクトリでは、パスワードなしで許可する必要があります。

.htaccess と .htpasswd を使用して HTTP 基本認証を設定しました。これらのファイルは Web のルート ディレクトリに配置されます。問題は、サブ ディレクトリが認証を自動的に継承していることです。

これをルートにのみ適用し、すべてのサブディレクトリを開いたままにする必要があります。どうすればいいでしょうか?

私の .htaccess ファイルの内容は以下の通りです。

AuthType Basic
AuthName "Secure Portal"
AuthUserFile /webroot/.htpasswd
Require valid-user

答え1

.htaccessファイルではこれを(簡単に)行うことはできません。.htaccessの指示はディレクトリとその下のすべてのディレクトリに適用されるためです。

.htaccess ファイル (または「分散構成ファイル」) は、ディレクトリごとに構成を変更する方法を提供します。1 つ以上の構成ディレクティブを含むファイルは、特定のドキュメント ディレクトリに配置され、ディレクティブはそのディレクトリとそのすべてのサブディレクトリに適用されます。

ドキュメント ルートの制限を無効にする .htaccess を各サブディレクトリに追加できると思います。

関連情報