2011-10-23 2 views
0

우선이 기사를 읽으면 인내심을 가져 주셔서 감사합니다. - 저는 PHP에서 상당히 새롭고 설명하고 설명 할 문제가 있습니다.

//set default path 
///var/www/vhosts/www.mydomain.com/httpdocs/ 
$url = 'http://mydomain.com/skins/coolblue/tmp'; 
$url2 = 'http://mydomain.com/skins/coolblue/tmp'; 
$doc = $_SERVER['DOCUMENT_ROOT']; 
$path = '/templates/'; 
$actual_url = $doc.'/skins/coolblue/tmp'.$path; 

(I는 개발자가 원래 내 사이트를 구축하고 내 서버를 구성했지만, 그는 지금 사라 졌어요) 내 사이트가, PLESK 제어 패널 전용 서버에서 호스팅되는 그래서 나는 GoDaddy이 전화해서 그들에게 값을 물었을 때 ['DOCUMENT_ROOT']을 위해, 그들은 나에게 준 * /var/www/vhosts/www.mydomain.com/httpdocs/*

내 문제는 내가 동적 이미 구성되어 URL을 예를 들어 subdomain.mydomain.com (및 작품을 사용한다 적절하게) 콘텐츠를 결정하고 출력은 위에서와 같이 $_SERVER['DOCUMENT_ROOT']을 사용하는 특정 스크립트에서 비롯되며 URL은 항상 정적입니다. www. ++++ 형식의 URL. 나는 동적 인 URL을 원한다.

이 문제를 해결할 수있는 방법이 있습니까? 아니면 $ doc = $_SERVER['DOCUMENT_ROOT'];을 스크립트의 실제 URL로 변경하고 동적 도메인 변수 즉 http://$subdomain/domain.com을 추가 할 수 있습니까? 나는 행운이없는 길의 모든 변형을 시도했다. 의견 있으십니까? 제쳐두고, $doc = $_SERVER['DOCUMENT_ROOT'];이 필요하거나 경로를 작성하는 대신 개발자가 선택 했습니까? - 다시 고마워요.

+0

"이 위와 같이 url은 항상 www. ++++ 형식의 정적 URL입니다." "DOCUMENT_ROOT"은 URL이 아닌 실제 파일 경로입니다. 어떤 이유로 파일에 대한 물리적 경로가 필요하지 않으면이 코드가 전혀 필요하지 않을 것입니다. –

답변

1

.htaccess 파일을 사용하여 하위 도메인을 하위 폴더로 전달하는 경우 (이는 순수한 추측입니다) 파일 시스템 경로가 필요하다면 리디렉션시 환경 변수를 설정할 수 있습니다 를 활용 예 :

RewriteCond %{HTTP_HOST} subdomain\.site\.tld$ [NC] 
RewriteRule ^(.*)$ /subfolder/$1 [L,E=APPEND_ROOT:subfolder/] 

그런 다음 간단한 수정 당신에게 올바른 경로를 제공해야합니다 : 각 사이트의 전체 경로 이름을 구성 할 필요하지 않으려면

$doc = $_SERVER['DOCUMENT_ROOT'] . $_ENV['REDIRECT_APPEND_ROOT']; 

$_SERVER['DOCUMENT_ROOT']; 필요하다 (그것은 일종의 고통이다).

.htaccess를 사용하여 하위 도메인을 해결하지 않고 Apache 구성에서 설정 한 경우, 각 하위 도메인의 올바른 실제 홈을 이미 가리켜 야합니다.

1

$_SERVER['DOCUMENT_ROOT'] 경로이다., 'SERVER_NAME' 또는 'REQUEST_URI'를 사용하려고

'SERVER_NAME'

현재 스크립트가 실행되고있는 호스트의 이름. 스크립트가 가상 호스트에서 실행 중이면 해당 가상 호스트에 대해 정의 된 값이됩니다. 이 페이지를 접근하기 위해

또는

'REQUEST_URI'

URI; 예 : '/index.html'