2016년 5월 26일 목요일

아파치 .htaccess Rewrite URL 리디렉트 처리

아파치 .htaccess Rewrite URL 리디렉트 처리


특정 파일 또는 이미지 호출시 다른 URL 로 리디렉션 하고 싶을때 Rewrite 모듈을 활용하면 된다.
아니면 특정IP 차단 등에 응용이 가능하다.

.htaccess 파일을 편집

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
VirtualHost 운영중이라면 여러개의 호스트주소에서 www.example.com 인 경우 ( [NC] 는 대소문자 구별을 안함)

RewriteCond %{REMOTE_ADDR} ^192.168.100.123$
특정 클라이언트 IP 만 조건 처리 가능

RewriteCond %{SERVER_PORT} !^8080$
특정 포트 ! 은 반대의 의미 ( ^8080$ : 8080 포트인 경우, !^8080$ : 8080 포트가 아닐 경우 )

RewriteCond %{REQUEST_URI} ^/directory/(.+).(jpg|gif|png)$ [NC]
특정 디렉토리 아래의 확장자 jpg, gif, png 인 경우

RewriteCond %{HTTP_USER_AGENT} (Android) [NC]
유저에이전트가 Android 인 경우

RewriteRule ^(.*)/directory/(.+)$ http://www.example.com:8080/directory/$2 [R=301,L]
www.example.com:8080 으로 리디렉션 처리
도메인주소를 제외한 뒤쪽 주소가 동일하다면 http://www.example.com:8080%{REQUEST_URI} 이렇게도 처리가 가능하다.

위의 예제를 참고해서 원하는 리디렉트 처리가 가능하다.