- Post in | WebDevelop/Apache
- Post at | 2008. 10. 20. 09:46 | by 쥬리엘
mod_rewrite 설치, 설정
mod_rewrite의 설치 및 설정
mod_rewrite는 Apache의 기능으로, 모듈을 넣어 사용가능하다.
이는 URL(도메인 이하의 패스)의 리디렉트나 위장, 치환등을 실시할 수 있다.
일반적으로 정규표현을 이용해서 RewriteRule를 적을수 있다.
정규표현식에 관해서는 정규표현관련 페이지를 참고하길 바란다.
mod_rewrite는 Apache의 기능으로, 모듈을 넣어 사용가능하다.
이는 URL(도메인 이하의 패스)의 리디렉트나 위장, 치환등을 실시할 수 있다.
일반적으로 정규표현을 이용해서 RewriteRule를 적을수 있다.
정규표현식에 관해서는 정규표현관련 페이지를 참고하길 바란다.
- 설치 관련정보
rpm, yum、apt-get, tar.gz, make install, shell・환경변수
- 설치
Apache2의 경우는 ./configure에
--enable-so --enable-rewrite=shared
을 붙여서 make한다.
버전에 따라서 서식이 약간 틀려질수 있다.
Apache・aprのインストール・設定을 참고
그 후 Apache의 modules 디렉토리에 mod_rewrite.so가 있는지 확인.
httpd.conf에
LoadModule rewrite_module modules/mod_rewrite.so
행을 추가 또는 주석처리되어 있으면 주석을 삭제.
- RewriteRule - httpd.conf 에 적는 경우
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/sample/(.*)$ /shop/sample/$1 [L,R]
</IfModule>
- RewriteRule - .htaccess 에 적는 경우
.htaccess에관해서는, .htaccessのサンプル・設定을 참조。
RewriteEngine on RewriteRule ^/sample/(.*)$ /shop/sample/$1 [L,R]
- RewriteRule - httpd.conf(VirtualHost)에 적는 경우
<VirtualHost 192.168.1.2> ServerName www.example.com DocumentRoot /test/htdocs RewriteEngine On RewriteRule ^/sample/(.*)$ /shop/sample/$1 [L] <Directory "/test/htdocs"> Options Includes ExecCGI MultiViews AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
- RewriteRule 작성방법 및 해설
RewriteRule ^/sample/(.*)$ /shop/sample/$1 [L]
의 경우,
http://도메인명/sample/ 에 접속하면
http://도메인명/shop/sample/ 로 주소처리하여 표시하고,
브라우저에서는, http://도메인명/sample/ 으로 주소를 표시한다.
http://도메인명/sample/test/test.php 에 접속하면
http://도메인명/shop/sample/test/test.php 로 주소를 처리하여 표시하고
브라우저에서는, http://도메인명/sample/test/test.php 으로 주소를 표시한다.
[L]은 정의된 최종행을 의미한다.
이 행 이후의 RewriteRule은 무시된다.
가장 맨 마지막행에 적는다.
아무것도 적지 않아도 OK.
[R]은 리다이렉트를 실행.
RewriteRule ^/sample/(.*)$ /shop/sample/$1 [L,R]
의 경우,
http://도메인명/sample/ 으로 접속하면
http://도메인명/shop/sample/ 로 주소처리하여 표시하고,
브라우저는 http://도메인명/shop/sample/ 으로 주소를 표시한다.
http://도메인명/sample/test/test.php 으로 접속하면
http://도메인명/shop/sample/test/test.php 로 주소를 처리하여 표시하고
브라우저는 http://도메인명/shop/sample/test/test.php 으로 주소를 표시한다.
RewriteRule ^/blog/view/([0-9]+)/?$ /blog/view/index.php?id=$1
의 경우,
http://도메인명/blog/view/1234/ 으로 접속하면
http://도메인명/blog/view/index.php?id=1234 로 주소처리하여 표시하고
브라우저는 http://도메인명/blog/view/1234/ 으로 주소를 표시한다.
「/」???「?」(을)를 넣어놓은 것은, 야후등의 검색 엔진에서는 URL의 뒤의 slash를 삭제한 URL를 인덱스에 등록하기 때문에, URL의 뒤로 slash가 있어도 없어도 액세스 할 수 있도록 하고 있다.
RewriteRule ^/abc/([0-9,a-z,A-Z]+)/([0-9,-]+)/?$ /abc/test.php?id=$1&date=$2
의 경우,
http://도메인명/abc/suzuki/2006-01-01/ 으로 접속하면
http://도메인명/abc/test.php?id=suzuki&date=2006-01-01 로 주소처리하여 표시하고
브라우저는 http://도메인명/abc/suzuki/2006-01-01/ 으로 주소를 표시한다.
- RewriteRule 샘플
<VirtualHost 192.168.1.2> ServerName www.example.com DocumentRoot /test/htdocs RewriteEngine On RewriteRule ^/sample/(.*)$ /shop/sample/$1 RewriteRule ^/blog/view/([0-9]+)/?$ /blog/view/index.php?id=$1 RewriteRule ^/abc/([0-9,a-z,A-Z]+)/([0-9,-]+)/?$ /abc/test.php?id=$1&date=$2 [L] <Directory "/test/htdocs"> Options Includes ExecCGI MultiViews AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
'WebDevelop > Apache' 카테고리의 다른 글
apache 403 forbidden error (0) | 2018.07.31 |
---|---|
mod_rewrite를 이용한 편리한 가상 도메인 운영방법 (0) | 2008.10.20 |
mod_rewrite 설정으로 userid.domain.com 사용하기 (0) | 2008.10.20 |