指定のディレクトリ下のファイルを自ドメイン以外からアクセス禁止にする.htaccess記述

ウェブアプリケーションを作る際に、指定のディレクトリ下のプログラムファイルを自ドメイン以外からアクセスできなくする必要が出てくることがあります。

ajaxで叩くプログラムファイルだったり、cronで指定の時間に叩くようなプログラムファイルなんかがそれにあたります。

例えばですが、cronで毎月1日に実行する集計プログラムがあるとします。

もしこのプログラムをユーザーが直接URLで叩いて集計を実行してしまったら大変困ったことになります。

自ドメインからファイルのアクセスを禁止する方法は、PHPでプログラム内に仕込む方法もありますが、指定のディレクトリに置いて.htaccessでそのディレクトリ化のファイルをすべて自ドメイン以外からアクセス禁止にしてしまうと管理しやすいかと思います。

以下がその際の.htaccessの記述方法です。

SetEnvIf REFERER "ドメイン名" Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith

非常に簡単に実現できますね。

ただ、ブラウザを使ったデバッグの際にアクセスできないと困るので、デバッグの際は一時的にファイルを削除するか無効化するようにしてください。