반응형
출처 - 여기 여기
Rewrite MOD베니
2007.08.16 14:10:43
제로보드 XE를 쓰다가 처음 알게 된 것이 mod_rewrite, RewriteEngine(Rewrite Mod.)이라는 것이다. 예전에 어떤 사이트를 보다가 해당 경로에 아무런 파일이 없음에도 어떻게 그 URL이 유효하게 되는지 굉장히 궁금했는데 알고보니 Rewrite MOD를 사용하는 것이었다.
예를 들어 이 사이트의 html 루트 폴더에는 index.php도 index.html도 index.htm도 존재하지 않는다.(비슷한 어떤 파일도 없다.) 하지만 유저들은 http://www.digist.co.kr이라는 주소만 타이핑하는 것으로 접속이 가능하도록 되어 있는데 이것은 .htaccess라는 파일안에 기술되어 있는 정보를 이용하게 되어 있다. rewrite mod를 모든 호스팅 업체에서 사용할 수 있는 것은 아니기 때문에 반드시 작동되는 내용은 아니지만 제로보드 XE 사이트를 보면 관련된 질문도 많고 해서 예를 올린다. (간단해 보이지만 나는 이걸 깨닫기까지 시간이 좀 걸렸다. OTL) RewriteEngine On
RewriteEngine을 사용하기 위해 .htaccess 첫 부분에 위와 같이 선언한다. 그리고 그 아래에 여러가지 RewriteRule을 기술할 수 있다. RewriteEngine에는 RewriteRule이외에도 많은 지정자를 넣어줄 수 있는데 여기선 그냥 RewriteRule로 특정 디렉토리의 포워딩에 대해 알아본다. RewriteRule ^/$ <보여질 주소> [L]
RewriteRule ^$ <보여질 주소> [L] 위의 두 줄은 html 루트에 접근했을 때 어떻게 하는가를 보여준다. [L]은 이 조건을 만족하여 URL을 Rewrite했을때 더이상 .htaccess의 내용을 파싱하지 않고 종료하라는 지정자이다. (여기에도 여러가지를 써줄수 있다. 심화된 내용을 원한다면 Apache 매뉴얼을 보길 바란다.) 앞에 쓰여진 ^/$는 'http://www.domain.com/'이란 주소로 입력 되었을 때를 위한 처리이다. 두번째의 ^$는 /를 마지막에 붙이지 않고 그냥 'http://www.domain.com'으로 접속했을 때의 처리. 그런 관계로 루트에 접속하면 뒷 부분에 기록된 주소로 보내지게 된다. 경로는 상대 경로, 직접 경로가 모두 가능하며 이것을 잘 이용하면 사이트를 공사중일때 임시로 .htaccess만 고쳐서 index 페이지를 다르게 보이는 방법이 가능해진다. 제로보드 XE를 기준으로 위의 Rewrite Rule을 적용시키면 아래와 같다. RewriteRule ^/$ ./zbxe/index.php?mid=(초기 mid값) [L]
RewriteRule ^$ ./zbxe/index.php?mid=(초기 mid값) [L] 만일 처음 보여질 모듈 이름이 blog라면 그냥 'mid=blog'라고 써주면 된다. 이것들을 잘 이용하면 그림의 무단 링크를 불가능하게 만들수도 있고 특정 폴더내의 내용을 다른 호스트로 분리시키면서도 같은 호스트내에 위치하는 것처럼 눈속임을 할 수 있다. RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?digist.co.kr(/)?.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?digist.co.kr(/)?.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?venister.cafe24.com(/)?.*$ [NC] RewriteRule .*\.(gif|jpg|jpeg|bmp)$ http://www.digist.co.kr/blocked.png [R,NC] 위의 예는 그림 파일의 직접적인 외부링크를 막기 위해 사용한 룰이다. RewriteCond같은것을 소개해야 하니 자세한 설명은 패스. 여튼 gif, jpg, jpeg, bmp 파일 같은 것이 사이트 외부로부터 들어오면 특정 이미지를 흘려 보내는 방법이 되겠다. |
|
반응형
'Server (LInux & Windows) > 리눅스(Linux) 공통' 카테고리의 다른 글
SVN 설정 및 사용법 (2) | 2013.08.01 |
---|---|
netstat 명령을 이용한 각 포트별 접속자 현황 보기 (0) | 2013.07.23 |
[제로보드] The requested URL xxx was not found on this server - mod_rewrite (0) | 2013.07.18 |
윈도우에서 Putty를 이용한 리눅스 X-Window 실행하기 (1) | 2013.07.11 |
vi 편집기 사용법 (0) | 2013.05.15 |
댓글