.htaccess は複数のファイルへのアクセスを拒否します

.htaccess は複数のファイルへのアクセスを拒否します

正確な名前を持つ複数のファイルへのアクセスを拒否したいのですが、試してみましたが成功しませんでした:

<Files config.inc.php config_smtp.inc.php>
  Order allow,deny
  Deny from all
</Files>

正確な名前のファイルを拒否したいので、FilesMatch を使用できません。

答え1

正確な名前のファイルを拒否したいので、FilesMatch を使用できません。

FilesMatchまさにこれが使えるものです。例えば:

<FilesMatch "^(config\.inc\.php|config_smtp\.inc\.php)$">
  Order allow,deny
  Deny from all
</FilesMatch>

この場合、正規表現を少し短縮して、例えば^config(_smtp)?\.inc\.php$上記と同じ 2 つのファイルに一致させることができます。

Apache 2.4を使用している場合は、mod_authz_host代わりに、例えば次のようになります。

<FilesMatch "^(config\.inc\.php|config_smtp\.inc\.php)$">
  Require all denied
</FilesMatch>

関連情報