[pakino]님이 남기신 글:
>정말 마지막 질문이 될 수 있길 바라며..^^;
>제대로 작동이 안 되고 있습니다.
>버츄얼 도메인관련 세팅입니다.
>버추얼도메인 작동은 잘되나 리다이렉트는 안되고 있습니다.
>계속 index.html을 읽고 있네요..
>
><VirtualHost xxx.xxx.xxx.xxx>
>ServerName xxx.net
>DocumentRoot /home1/apache/htdocs1
>ServerAlias *.xxx.net
>RedirectMatch ^([^./]+)$ /check.php?id=$1
>CustomLog "|/usr/local/cronolog-1.6.1/src/cronolog /home1/apache/logs/net_access_log_%Y%m" common
>ErrorLog /home1/apache/logs/net_error-log
></VirtualHost>
========================================
RedirectMatch ^/([^./]+)$ /check.php?id=$1
이렇게 할 경우 302 에러를 내더군요.
즉 '?id' 부분이 url 인코딩되어 전달되기 제대로 찾질 못하더군요.
어쩔수 없이 404 Errodocument 지시자를 이용해야 할것 같네요.
RedirectMatch 부분을 빼고,
ErrorDocument 404 /check.php
이 부분을 추가합니다.
<?php
## this file name 'check.php'
##
if(preg_match(';^/[^./]+$;',$_SERVER[REQUEST_URI]))
{
$id = preg_replace(';^/([^./])$;','\1',$_SERVER[REQUEST_URI]);
....
if(id가 mysql에 존재한다면)
{
header('Location: /index.html?id='.$id);
exit;
}
}
else
{
echo '페이지가 존재하지 않습니다.';
exit;
}
?>
이런식으로 짜야할것 같네요.
요즘 제가 좀 실수를 많이 하네요... T.T |