1,694 views
この記事は最終更新から 2177日 が経過しています。
1. やりたいこと
画像を置くためのディレクトリに PHPなどのプログラムを置いてしまった…
なんて場合に備えて、画像保存用ディレクトリ配下では、画像へのアクセス以外の HTTPリクエストを拒否したい。
2. やってみる
.htaccess で mod_rewrite の設定をすればよい。
(1) 拡張子 .jpg の場合のみ受け付ける。
.jpgでないならば Googleに飛ばす。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^(.*)\.jpg$
RewriteRule . https://www.google.com [L]
</IfModule>
■「!^(.*)\.jpg$」の説明
! は、これから書くことが「満たされない場合」の判定であることを表し、
^(.*) は、先頭から任意の文字が続き、
\.は、次に「.」が存在し、 「.」は正規表現で使う文字なので「\」でエスケープ
jpg$は、最後に jpg が存在すること。
つまり、この行の RewriteCond は、
「~.jpg ではない場合」
の条件を表している。
(2) 拡張子 .jpg .JPG の場合のみ受け付ける。
NC フラグを付けると 大文字小文字を区別しない。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^(.*)\.jpg$ [NC]
RewriteRule . https://www.google.com [L]
</IfModule>
(3) 拡張子 .jpg .JPG .jpeg .JPEG の場合のみ受け付ける。
OR指定する。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(jpg|jpeg)$ [NC]
RewriteRule . https://www.google.com [L]
</IfModule>
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2026-01-24: 0回 2026-01-23: 0回 2026-01-22: 0回 2026-01-21: 1回 2026-01-20: 1回 2026-01-19: 1回 2026-01-18: 0回