mod_rewrite 란?
Apache module의 한 종류로 서버 Request를 정해진 Rule에 의해서 다른 URL or File로 보내는 모듈
mod_rewrite로 거의 모든 Request변형 처리가 가능하다.
가능한 작업의 예
URL Forward
– DocumentRoot 변경
– Domain,Subdomain 조작
– 특정 Patten URL에 대한 URL변경
– User 디렉토리에 대한 처리
– 기타 등등..
mod_rewrite 설치
Apache 전체의 재 컴파일이 아닌 Mod_rewrite 모듈만 별도로 컴파일 하여 설치 하는 방법임 ㅇㅇ
[root@hoguinside01:58:39]# cd /usr/src/apache_2.2.6 // 아파치 설치 디렉토리로 이동(아파치를 설치한 소스 디렉토리)
[root@hoguinside01:58:39]# /usr/local/apache/bin/apxs -c -I/usr/include/gdbm mod_rewrite.c
[root@hoguinside01:58:39]# gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
[root@hoguinside01:58:39]# /usr/local/apache/bin/apxs -i mod_rewrite.so
[root@hoguinside01:58:39]# cp mod_rewrite.so /usr/local/apache/libexec/mod_rewrite.so
[root@hoguinside01:58:39]# chmod 755 /usr/local/apache/libexec/mod_rewrite.so
[root@hoguinside01:58:39]# vi /usr/local/apache/conf/httpd.conf
LoadModule rewrite_module libexec/mod_rewrite.so
~~~
Addmodule mod_rewrite.c
코드 추가
[root@hoguinside01:58:39]# /usr/local/apache/bin/apachectl restart
mod_rewrite 사용
1. httpd.conf 의 rewrite 모듈 활성화( 주석을 제거)
LoadModule rewrite_module modules/mod_rewrite.so
2. RewriteRule 적용
<VirtualHost *:80>
DocumentRoot E:\wwwroot\test
ServerName localhost
RewriteEngine on
RewriteRule ^(/images/.*)$ http://hoguinside.com$1
RewriteRule ^(/data/.*)$ http://hoguinside.com$1
</VirtualHost>
위의 경우는 /images , /data 디렉토리에 대한 요청은 http://hoguinside.com/images/~ 로 Redirect 시키라는 명령어 입니다.
.htaccess 파일을 이용하기 위해서는 아래와 같은 옵션을 주셔야 합니다.
<Directory “/data2/dwwwroot/tt/html”>
Options FollowSymLinks
AllowOverride FileInfo
</Directory>
3. 웹서버 재시작
[root@hoguinside01:58:39]# /usr/local/apache/bin/apachectl restart
0 개의 댓글