ファイル・ディレクトリへのアクセスを禁止する設定例【.htaccess】FilesMatch

.htaccess(ドットエイチティーアクセス)は、Apacheを用いたWebサーバーに、ディレクトリ単位で設置できる設定ファイル。
今回は、その.htaccessファイルを利用して、指定したファイルへのアクセスを禁止する設定例となります。
【.htaccess】指定したファイル・ディレクトリへのアクセスを禁止する例
.htaccessには、変更する設定によってディレクティブと呼ばれる命令を記述します。また、.htaccessファイルは、配置したディレクトリと配下のディレクトリすべてに適用されます。
指定したファイルへのアクセスを禁止
例では、次のいずれかの文字から始まるファイル名を指定して、そのファイルへのアクセスを禁止します。
- wp-config.php
- wp-mail.php
- install.php
- .ht(.htaccessなど)
以下、.htaccessに記述する構文の例となります。
<FilesMatch "^(wp-config\.php|wp-mail\.php|install\.php|\.ht)">
deny from all
</FilesMatch>
指定したディレクトリへのアクセスを禁止
指定したディレクトリと配下のディレクトリへのアクセスを、すべて禁止する場合には、以下の構文を.htaccessに記述します。
deny from all
アクセスの禁止を確認
上記で指定したアクセスの禁止を確認するには、ブラウザから、指定したファイル・ディレクトリのURLへアクセスします。
アクセスしたURLが 403エラーとなれば、アクセスが禁止されています。
例で利用したディレクティブについて
以下、例で利用したディレクティブのまとめとなります。
FilesMatchディレクティブ
FilesMatchディレクティブは、Apache コア機能のディレクティブとなり、ディレクティブを適用させる範囲をファイル名によって制限します。
また、ファイル名の指定には正規表現を利用します。
FilesMatchの構文について
FilesMatchの構文は次のような形式となり、FilesMatchで囲ったディレクティブは、FilesMatchの引数に正規表現で指定したファイル名のみに適用されます。
<FilesMatch 正規表現>
ディレクティブ
</FilesMatch>
その他にも、ディレクティブを適用させる範囲を制限できるディレクティブはあります。詳しくは文末の参考サイト内を確認してみてください。
denyディレクティブ
例のdenyディレクティブでは引数にはfrom all を指定して、すべてのアクセスを禁止しています。
denyディレクティブの詳細については、以下のリンク先を参考にしてみてください。