次の条件の一部のIPを除くすべての内部ネットワークIP(内部ネットワーク「192.168.1.0」のみ)をエラーページにリダイレクトしたいと思います。
if ( IP_from_Network = 192.168.1.0 and ((IP != 192.168.1.4) or (IP != 192.168.1.5)
or (IP != 192.168.1.6)) )
{
redirect to an error page
}
だから私はこれを達成するためにRewriteEngineを使用しようとしました。
RewiteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.4$ [NC]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.5$ [NC]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.6$ [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.*$ [NC]
RewriteCond %{REQUEST_URI} ^/test/manager/.* [NC]
RewriteRule ^(.*)$ - [R=404,L]
しかし、これは私には合わない。
[OR]や[AND]などの他のタグを使用する必要がありますか?
修正する:
カタログタグ:
<Directory /var/www/html/test>
Order allow,deny
Allow from 192.168.1
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.4$ [NC]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.5$ [NC]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.6$ [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.*$ [NC]
RewriteCond %{REQUEST_URI} ^/test/manager/.* [NC]
RewriteRule ^(.*)$ - [R=404,L]
</Directory>
答え1
使用拒否を許可代わりに:
<Location /test/manager/>
Order Deny,Allow
Deny from 192.168.1.0/24
Allow from 192.168.1.4 192.168.1.5 192.168.1.6
</Location>
これはあなたが望むものではないと思う他のIPも許可します。その場合は、Orderを変更してDenyラインを削除します。
<Location /test/manager/>
Order Allow,Deny
Allow from 192.168.1.4 192.168.1.5 192.168.1.6
</Location>