web-dev-qa-db-ja.com

Apache:特定のhttpリクエストのみを許可し、他のすべてを拒否します

Windows Server 2008マシンには、ゲートウェイなど、お客様の特定の安全なトラフィックに使用されるApacheサーバーがあります。

ここで、ワイルドカードuri:**** secure.mysite.com ****で定義された特定の範囲の安全なURLのトラフィックのみを許可し、Apacheへの他のすべてのhttpまたはhttps要求を拒否したいと思います。

Apache httpd confファイルでどのように設定しますか?

ありがとうございました

2
DextrousDave

allow 一致させたいリクエストURIパターンを介してのみ設定される環境変数を介してアクセスできます SetEnvIf

ホストまたは仮想ホストで、許可するURIを使用して以下を構成します。

SetEnvIf Request_URI ^/requests/you/want/.* allow 
SetEnvIf Request_URI ^/requests/you/want/.+?\.php$ allow 

Apacheからのリクエストを処理している場合:

<Location /> 
 Order Deny,Allow
 Deny from all
 Allow from env=allow
</Location> 

または、 mod_proxy を介してプロキシする場合は、URIの一致をいくつかのIP制限と組み合わせて、オープンプロキシがないようにする必要があります。

SetEnvIf Remote_Addr ^10\..+ deny

<Proxy *>
 Order Allow,Deny
 Deny from env=deny
 Allow from env=allow
</Proxy>

この場合、IPが10.0.0.0/8範囲でnotである場合、拒否されます Order 重要であること

2
Matt