2016년 7월 28일 목요일

아파치 mod_rewrite 서브도메인 자동 생성시 document_root 고정 해결

Apache mode_rewrite를 활요한 서브도메인 자동 생성시 php의 $_SERVER['DOCUMENT_ROOT']가 모두 고정되는 현상이 발생한다.

해결방법으로 httpd.conf 또는 httpd-vhosts.conf 수정하는 방법이 있다.
<Directory "/web/">
     php_admin_value auto_prepend_file /web/setdocroot.php
</Directory>


detdocroot.php
<?php
$_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'],'',$_SERVER['SCRIPT_FILENAME']);
?>


구동 방법은 간단하다. auto_prepend_file 을 사용해서 php구동 전 setdocroot.php를 include시켜 $_SERVER['DOCUMENT_ROOT'] 환경변수를 변경한다.

URL 재작성 지침서 : https://httpd.apache.org/docs/2.2/ko/misc/rewriteguide.html