私はWindows10でApache2.4を実行しています。特定のディレクトリ内のDLLファイルへのアクセスを拒否するには、
<Directory "${SRVROOT}/htdocs">
#...
<Files "*.dll">
Require all denied
</Files>
#...
</Directory>
これがなく、foo.dll
などの存在しないファイルが与えられると404になります。構成では、同じ存在しないfoo.dll
が403を与えるので、構成が有効であることがわかります。ただし、指定されたディレクトリにあるbar.dll
にアクセスしようとすると、ダウンロードするように求められます。何故ですか?
<Files ...>
ディレクティブを上書きしている可能性があるものを特定するにはどうすればよいですか?
さて、私が望んでいたことを達成するために、私は一般的なケースですべてのアクセスを取り消し、このように個々のファイルを明示的に許可しました。
<Directory "${SRVROOT}/htdocs">
#...
Require all denied
<Files "*.exe">
Options +ExecCGI
SetHandler fcgid-script
Require all granted
</Files>
</Directory>
これにより、ディレクトリ内の.dllファイルやその他すべての無関係なファイルの読み込みが適切に防止されます。