[한승식]님이 남기신 글:
>제가 아파치쪽은 전혀 몰라서... 어떻게 검색을 해야할지도 몰라서 ㅠㅠ 뒤지다가 뒤지다가... 질문 남깁니다 ㅠㅜ...
>
>현재 apmsetup 으로 window 환경에서 서버를 돌리고 있고요...
>
>제가 구현하고 싶은건...
>
>사이월드처럼
>
>http://lemolemo.com:9000/lemolemo
>
>로 치고들어오면...
>
>http://lemolemo.com:9000/open.php?id=lemolemo
>
>로 연결하는걸 구현해보고 싶어서... 문의 드립니다...
>
>초보인점을 감안하여 ㅠㅠ 쉽게 설명해주시거나 ㅠㅠ 예를 들어 주시면 정말 정말 감사 하겠습니다 ㅠㅜ...
>
>rewrite 를 이용하면 된다고는 하는데 영 몰라서 ㅠㅠ...
========================================
mod_rewrite 모듈을 사용하면 되지만 설치확인/설치/설정이 상당히
까다로운 편입니다.
이 방법으로 설명할 수는 있지만 별로 권장하지 않습니다.
설치확인/설치는 아래 문서를 나중에 읽어 보세요.
http://linuxchannel.net/docs/apache_virtual_user_host.txt
(문서 작성한지가 벌써 3년이나 되었군요... T.T)
권장하는 방법은 아파치 RedirectMatch 지시자를 사용하는 것입니다.
그런데 위에서
/lemolemo ---> /open.php?id=lemolemo
이런식으로 URL이 변경되기 위해서는 좀더 공통적인 법칙(정규표현식)
이 있어야 합니다.
즉 'lemolemo' 와 같은 문자열의 공통점을 의미합니다.
예를들어,
/lemolemo ---> /open.php?id=lemolemo
/aaa ---> /open.php?id=aaa
/bbb ---> /open.php?id=bbb
/ccc/ ---> (fail)
/ddd.some ---> (fail)
이와같이 변수 id 에 들어갈 문자열에 점(.) 이나 '/' 문자가 안들어가고
오직 [a-zA-Z0-9_-] 문자만 들어간다면
(영소대문자와 0-9까지 숫자, 그리고 '_', '-' 문자)
RedirectMatch ^/([a-zA-Z0-9_-]+)$ /open.php?id=$1
이렇게 간단하게 할 수 있습니다.
그런데 주의할점은 오른쪽의 '?' 는 URL 쿼리가 아닌 실제로
인코딩되어 넘어가기 때문에 제대로 되지 않습니다.
따라서,
RedirectMatch ^/([a-zA-Z0-9_-]+)$ /open.php/id=$1
이런식으로 변형된 URL을 만들거나 이렇게 설정해야 합니다.
그리고,
open.php 파일에서 $id 값을 얻어오는 방법은
-- open.php --------------
<?php
##
## get $id
##
$id = str_replace('/id=','',$_SERVER['PATH_INFO']);
echo $id;
?>
---------------------------
이와 같이 $_SERVER['PATH_IFNO'] 라는 변수를 사용하면 됩니다. |