HP作ってみる!

(66) HTTPアクセスは JPEGファイルに対してのみ可能とする。

1,760 views

この記事は最終更新から 2298日 が経過しています。

1. やりたいこと

画像を置くためのディレクトリに PHPなどのプログラムを置いてしまった…

なんて場合に備えて、画像保存用ディレクトリ配下では、画像へのアクセス以外の HTTPリクエストを拒否したい。

2. やってみる

.htaccessmod_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-05-25: 0回
  • 2026-05-24: 0回
  • 2026-05-23: 1回
  • 2026-05-22: 4回
  • 2026-05-21: 0回
  • 2026-05-20: 0回
  • 2026-05-19: 1回
  • モバイルバージョンを終了