2011-10-23 22 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; 

(私は、開発者が最初に自分のサイトを構築し、私のサーバーを構成していたが、彼は今なくなって) 私のサイトは、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に変更し、動的ドメイン変数ie 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'などです。

関連する問題