Apacheで特定の拡張子へのアクセスを制限(403:Forbidden)する方法
目次
スポンサードリンク
ApacheはオープンソースのWebサーバソフトウェアです。この記事では、Apacheで配信するコンテンツの内、特定の拡張子を持つファイルだけアクセスできないよう制御する方法を解説します。 セキュリティ上の理由でアクセスを制限したいファイルの拡張子がある場合などは役に立つ設定方法です。
LocationMatchディレクティブを使う方法
LocationMatchディレクティブは、正規表現を用いて特定のURLパターンに一致するリクエストに対してのみ設定を適用することができます。正規表現は、URLパターンに一致するリクエストのみを対象とします。
以下サンプルは、/data/ 配下のPDFファイルのみアクセスできないように制御します。 パス部分が /data/ で始まるURLで、末尾が .pdf であるファイルに一致するリクエストが対象となります。
<LocationMatch "^/data/(.*)\.pdf$">
Require all denied
</LocationMatch>
設定ファイルに上記追加後、Apacheを graceful または restart することで設定を反映することができます。 ブラウザで条件にマッチするURLにアクセスすると ステータスコード 403(Forbidden)のエラー画面が表示されるはずです。
上記設定は大文字小文字を区別するので、拡張子が大文字で.PDFの場合は設定が適用されない点は注意です。
複数の拡張子を指定する方法
正規表現ではパイプ(|)で条件を区切ることで複数の条件を指定することができます。以下サンプルは、 パス部分が /data/ で始まるURLで、末尾が .pdf、.jpg、.png のいずれかに一致するリクエストが対象となります。
<LocationMatch "^/data/(.*)\.(pdf|jpg|png)$">
Require all denied
</LocationMatch>
関連記事
ApacheでIPアドレスによってアクセス制限する方法
参考ドキュメント
https://httpd.apache.org/docs/2.4/sections.html
Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
関連記事
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法