1,226 views
この記事は最終更新から 1709日 が経過しています。
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>