시나리오는,
- 1. 허용하고자 하는 IP 대역은 192.168.0, 192.168.1.2, 10.0.0, 10.1, 10.2 이다.
- 2. 위 IP 대역이 아닌 경우 /htm/forbidden.htm 을 보여준다.
첫 번째 방법은 deny, allow 를 이용한 방법입니다.
Order deny,allow Deny from all Allow from 192.168.0 Allow from 192.168.1.2 Allow from 10.0.0 Allow from 10.1 Allow from 10.2
위와 같이 설정한 후 ErrorDocument 403 에서 /htm/forbidden.htm 을 지정하면 됩니다.
그런데 이 경우 response header 에 403 코드가 노출되게 되어 보안상 그다지 좋지는 않습니다.
그래서 두 번째 방법을 사용하기도 합니다.
RewriteEngine on RewriteCond %{REMOTE_ADDR} !^192\.168\.0\. RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.2 RewriteCond %{REMOTE_ADDR} !^10\.0\.0\. RewriteCond %{REMOTE_ADDR} !^10\.1\. RewriteCond %{REMOTE_ADDR} !^10\.2\. RewriteCond %{REQUEST_URI} !/htm/forbidden.htm$ [NC] RewriteRule ^.*$ /htm/forbidden.htm [R,L]
바로 mod_rewrite 를 사용하는 것입니다.