다음 조건의 일부 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>