これを行うには、IIRFのような URLリライターを使用できます。許可されていない IP からのリクエストに対して 404 などを返すルールを挿入します。これは、PHP、Java、ASP.NET、RoR、静的 html、画像など、あらゆる Web アプリ プラットフォームで動作します。
readme には、次のような例が示されています。
RewriteCond %{REMOTE_ADDR} ^(?!127.0.0.1)([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})(.*)$
RewriteRule ^/(?!redirected.htm)(.*)$ /redirected.htm
そしてそれは言います:
上記の条件は、サーバー変数「REMOTE_ADDR」が 127.0.0.1 以外の IP アドレスに評価される場合に true と評価されます。?! ゼロ幅の負の先読みであり、正規表現の最後の (.*) は、その変数に時々現れるゴミをキャッチすることです。条件に続くルールでは、「redirected.htm」以外の URL については、「redirected.htm」にマップします。これにより、際限のない書き直しが防止されます。([L] 修飾子フラグを使用して無限の書き換えを防ぐこともできます)。
この RewriteCond+RewriteRule は、外部からの要求を IIS サーバーにリダイレクトします。ホワイトリストに登録された特定の IP のセットに対して同様のことを行うことができます。
IIRF は C で記述された ISAPI フィルターであり、mod_rewrite と哲学が似ています。IIS5、6、または 7 で動作します。設定するには管理者アクセスが必要です。「プログラムする」必要はありませんが、.htaccess と同様の構文を持つ ini ファイルがあります (特に mod_rewrite ルール用)。
IIRF は無料でオープンソースです。