Flex 한글문서 웹페이지(http://flexdocs.kr)는 frame방식으로 운영하고 있었다. frame방식으로 구성된 웹사이트의 문제점을 살펴보자.먼저 frame방식으로 구성된 웹사이트의 문제점을 살펴보자. ![]() 기존 flexdocs.kr 모습 하지만 아래 그림과 같이 하나의 frame으로 구성된 웹사이트는 위와 같은 문제가 발생되지 않는다. ![]() 앞서 말했던 것과 같이 rewrite 모듈을 이용하면 기존 html문서로 접속했을때와 똑같은 URL로 접근이 가능하면서도 통프레임 방식을 취할 수 있다. 전체동작방식을 살펴보자.나는 위와 같이 기존 html문서(약 3003여개)를 전혀 건드리지 않고 rewrite 모듈을 이용해 통프레임 방식으로 웹사이트를 리뉴얼 할 수 있었다.먼저 아래 그림을 보면서 그 동작방식을 살펴보자. 가령, http://domain.com/docs/0001.html 로 접근한다고 가정하자. 기존방식은 빨간색화살표 표시처럼 0001.html을 Client에 보내게 된다. 하지만 녹색화살표를 보듯이 같은 URL로 접근하지만 Apache서버는 0001.html을 직접 보내지 않고 PHP Script로 rewrite하여 PHP를 수행하여 그 결과를 Client로 보내게 된다. 0001.html안에는 <head><title>과 같은 태그들이 존재한다. <body>안에 있는 내용만 사용하고 나머지 앞뒤는 모두 잘라낸다음 내가 원하는 메뉴와 제목이 추가되거나 수정된 문서로 만들려고 한다. 이때 mod_rewrite를 이용하면 금방 접속한 URL이 수정없이 apache에서 http://domain.com/my.php?p=/docs/0001.html 로 rewrite할 수 있다. 그럼 myphp는 get방식으로 넘어온 문서의 경로 /docs/0001.html만 찾아서 <body>태그 안에 있는 내용만 추출하고 그 문서의 앞뒤에는 내가 원하는 것으로 채울 수 있다는 것이다. ![]() 기존방법(빨간색화살표)과 mod_rewrite에 의한 방법(녹색화실표) Apache rewrite 모듈을 이용해보자.먼저 rewrite 모듈을 사용하기 위해 rewrite모듈을 다운받아 설치할 필요가 있다. 나는 안녕리눅스를 설치할때 기본적으로 설치 되어 있어서 다시 설치할 필요가 없었다. 기본적인 사용방법은 아래 문서를 참고한다. http://www.superuser.co.kr/apache/rewri ··· dule.htm 이외에도 검색해보면 문서가 많다. 알고 있는 건지 모르겠지만 테터툴즈 설치용 블로그도 rewrite를 사용하고 있다. 보안에 신경쓰자.rewrite를 사용하면서 항상 기억해야할 것은 보안이다.rewrite를 사용할 때 어떤 경로 또는 문서로 rewrite를 할 것인가 정확히 파악하고 필요한 쪽으로만 접근이 가능하도록 하는 것이 아주 중요할 것이다. 잘못 설정하면 중요파일을 건드릴 수 있지 않을까? 또한 공격자가 임의의 경로로 접근하기 위해 "my.php?p=/원하는 경로 파일명" 을 URL에 입력했다고 가정해보자. 이때 Get방식으로 받는 p값의 경로명이 system파일이나 중요한 파일을 건드리지 않도록 p값을 꼭 필터링해야한다. 개발자는 항상 보안을 생각하면서 프로그래밍 해야겠다. 마무리지금까지 Apache rewrite모듈을 이용한 웹사이트 구축 사례를 소개했다.rewrite모듈은 이 외에도 응용할 곳이 많기 때문에 공부해 볼 필요가 있다. 어떻게 보면 apache의 가장 중요한 기능 중 하나라고도 할 수 있겠다. http://flexdocs.kr/에 apache의 rewrite 모듈을 이용해서 리뉴얼하여 얻은 이점은 다음과 같다.
글쓴이 : 지돌스타(http://blog.jidolstar.com/204) Trackback Address :: http://blog.jidolstar.com/trackback/204
|
||||||




