티스토리 뷰

728x90
반응형

낮은 버전의 IIS에서는 아파치(apache)에서의 rewrite_module을 사용할수가 없더군요.


rewrite_module을 사용하면


http://trend21c.tistory.com/admin.php?type=entry&action=post


뭐 이런식의 URL이 있다고 할때


http://trend21c.tistory.com/admin/entry/post/


URL을 이렇게 깔끔하게 만들수 있는 장점이 있지요.


SEO(검색엔진최적화)적인 측면에서도 장점이 있습니다.



IIS7에서는 간단하게 url pattern 을 설정할 수 있는것 같은데


IIS5같은 낮은 버전에서는 이 기능을 자체적으로 쓸 수 있는 방법이 없더군요.


그래서 고민하고 있던 중에 해외 사례를 보니 재미난 방법으로 rewrite를 구현한 사례들이 있었습니다.



원리를 간단히 설명하면


내가 사용하고자 하는 URL의


http://trend21c.tistory.com/admin/entry/post/


실제 웹서버경로에는 해당 폴더가 존재하지 않겠죠?


바로 이럴때 IIS는 404 error를 보여주는데요.


IIS가 404 에러를 나타낼때 404 에러페이지를 보여주지 않고 특정 파일을 실행하도록 하는것 입니다.


바로 이점에 착안하여 404 에러 발생시 보여줄 URL을 설정한 다음

그 URL에서 사용자가 request한 URL을 분석하여


해당 경로로 redirect 시키거나, transfer를 이용하거나, 아니면 기타 방법들로


404 에러를 보여주지 않고 다른 액션을 실행시키는 것입니다.



제 설명이 좀 이해가 되나요? 말이 너무 어렵지는 않았나요?



IIS에서 특정 폴더나 경로를 선택하여 마우스 우측 클릭을 한 뒤에


등록정보를 보면, 해당 경로나 폴더에만 사용자 지정 오류를 각각 설정할수가 있습니다.



이 오류중에서 404 오류(파일을 찾을수 없습니다)에 특정 url을 매핑시키는 것이지요.

404 오류를 선택한다음 속성 편집을 하면





이렇게 URL을 설정할수가 있는데 여기에 URL로 사용자의 request URL을 분석하여 다음 액션을 실행하는 파일을 설정하는 것입니다.


사용자가 요청한 URL path는


매핑한 URL에서


Request.ServerVariables("QUERY_STRING")


변수로 가져올 수 있으며



이 값을 / (슬래쉬)로 split 하여


url_arr = Split(Request.ServerVariables("QUERY_STRING"), "/")


경로를 분석한뒤 어떤 요청을 한 것인지 이에 대한 액션을 발생시켜주면 됩니다.




제가 제일 처음에 프로그래밍의 세계에 입문했던 언어가 classic asp라고도 불리는 asp 1.0인데


꽤 오랜기간 asp에 손을 대지 않았다가 요즘에 이 asp를 제법 만지고 있습니다.


오랜만의 asp 코딩이라 옛 느낌이 새록새록 떠오르네요.

즐코딩하세요 여러분~~
728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함