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

投稿者: | 2018年10月21日

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

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>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)