또.. 경로 문제로 씨름했네요 ㄷㄷ
거두 절미하고 코드먼저...
일단 문제 없이 작동하지만, sir.co.kr/~user 도메인은 테스트 계정이 없는 관계로 작동여부 불확실합니다.
function g4_path()
{
$result['path'] = str_replace('\\', '/', dirname(__FILE__)); // 서버 절대 경로 내부적 사용
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $_SERVER['SCRIPT_NAME']); // /~user 삭제
//$document_root = str_replace($tilde_remove, '', $_SERVER['SCRIPT_FILENAME']); // 루트경로 원본
//$document_root = str_replace($tilde_remove, '', realpath($_SERVER['SCRIPT_FILENAME'])); 루트경로 - 일부호스팅에서 경로 문제로 경로 변환
$document_root = realpath($_SERVER['DOCUMENT_ROOT']); // 루트 경로 - $_SERVER['DOCUMENT_ROOT'] 사용
$root = str_replace($document_root, '', $result['path']); // 루트 뺀 상대경로
$port = $_SERVER['SERVER_PORT'] != 80 ? ':'.$_SERVER['SERVER_PORT'] : '';
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
$user = str_replace($tilde_remove, '', $_SERVER['SCRIPT_NAME']); // /~user 시작한다면 추출
$result['url'] = $http.$_SERVER['SERVER_NAME'].$port.$user.$root;
return $result;
}
일단 문제 없이 작동하지만, sir.co.kr/~user 도메인은 테스트 계정이 없는 관계로 작동여부 불확실합니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 2개
$_SERVER['DOCUMENT_ROOT'] 는 사용하면 안되는 경우가 발생하여 제거 하였습니다.
도메인/~user 는 저희쪽에서 확인 했습니다.
위와 같이 $_SERVER[] 불러드릴경우 시작경로가 틀려서 $port가 작동을 안합니다..
그래서 realpath()을 사용했습니다.
realpath($_SERVER['SCRIPT_FILENAME']) 으로도 정상 작동은하지만 $_SERVER['DOCUMENT_ROOT'] 이문제는 생각하지 못했습니다 ^^;