ディレクトリ リストを 403 Forbidden に明示的に設定する Apache2 ディレクティブはありますか?

ディレクトリ リストを 403 Forbidden に明示的に設定する Apache2 ディレクティブはありますか?

ディレクトリリストを明示的に設定するディレクティブはありますかインデックスファイルなし403 Forbidden に?デフォルトの動作では404が返されるためmod_dirインデックスファイルが見つかりません。

持っていないmod_autoindexが読み込まれ、Optionsに設定されていますFollowSymLinks。 を試してみました-Indexesが、それでも 404 が返されました。

<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
    DirectorySlash On
</IfModule>

<Directory /var/www>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

関係ないかもしれませんが、私は Apache 2.4 を使用しています。

答え1

試行錯誤の末、自分の質問に答えます。この回答は Apache >= 2.0 に適用されるはずです。

要約すると、指令IndexesのオプションにはOptionsmod_autoindexApache のデフォルトの動作についてさらに詳しく知りたい場合を除き、ここで読むのをやめてください。

より詳しい情報

鍵となるのはmod_autoindexロードされていない場合、設定はOptions -Indexes効果がなく、404 を返します。これは、mod_dirDirectoryIndexディレクティブがインデックス ファイルを見つけられないため、当然のことです。ロードされている場合、設定はOptions -Indexes403 を返します。

これは、Apache オプションのドキュメントインデックスOptionsこれはmod_core の一部なので少し混乱します。

インデックス

ディレクトリにマップする URL が要求され、そのディレクトリに DirectoryIndex (例: index.html) がない場合、mod_autoindex はディレクトリのフォーマットされたリストを返します。

...そして説明されたmod_autoindexページ:

Options +Indexes を使用すると、自動インデックス生成が有効になります。詳細については、Options ディレクティブを参照してください。

私のテストでは、.htaccess ファイルの有効化/無効化はAllowOverride無関係であることが示されています。

関連情報