폴

또.. 경로 문제로 씨름했네요 ㄷㄷ

· 2013-03-20 (수) 23:43:44 · 1165 · 2
거두 절미하고 코드먼저...


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 는 저희쪽에서 확인 했습니다.
[http://sir.co.kr/data/thumb/g4s_bug/59-a47a890f7364a35706512d5017f79a00.jpg]
위와 같이 $_SERVER[] 불러드릴경우 시작경로가 틀려서 $port가 작동을 안합니다..
그래서 realpath()을 사용했습니다.
realpath($_SERVER['SCRIPT_FILENAME']) 으로도 정상 작동은하지만 $_SERVER['DOCUMENT_ROOT'] 이문제는 생각하지 못했습니다 ^^;
댓글을 작성하시려면 로그인이 필요합니다.

버그신고

4,191건

  문의게시판을 이용해 주세요 :) https://sir.kr/co_qa  

+
분류 제목 글쓴이 날짜
13-03-23
13-03-22
13-03-22
13-03-21
13-03-21
13-03-21
13-03-21
13-03-20
13-03-20
13-03-20
13-03-20
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19
13-03-19