2015-10-16 51 views
0

我試圖使可靠的代碼在我的本地服務器和我的網站的實際服務器上工作,因此我不必更改路徑等等到我的文件。我無法使用相對路徑,因爲我使用的是一個子域名,所以瀏覽器沒有看到該路徑上方的文件夾,所以我試圖做的是在我的本地服務器上使用根文件夾來指導我的代碼在哪裏和web服務器上檢索服務器名稱。我得到現在的錯誤是當從子域通過url包含文件時,Http請求失敗

Warning: include(http://cms.domain.com/serverdetails.php): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/html/domain/administration/cms/DBconnection_patches.php on line 11 

我的主域名,並與CMS文件的子域cms.domain的構成就像這樣

domain 
    -index.php 
    -js 
     -files.js 
    -administration (subdomain folder) 
     -index.php 
     -otherfiles.php 

它是通過虛擬主機做了一個正常的子域,在Linux上Ubuntu 14.04 apache2。

if($_SERVER['SERVER_NAME']=='domain.com'){ 
      $local = false; 
     }elseif($_SERVER['SERVER_NAME']=='localhost'){ 
      $local = true; 
     } 
     if($local){ 
      include $_SERVER['DOCUMENT_ROOT'] . '/domain/administration/serverdetails.php'; 
     }else{ 
      include 'http://cms.'.$_SERVER['SERVER_NAME'] . '/serverdetails.php'; 
     } 

回答

0

老兄你可以使用絕對URL不包括.php文件!

由於在生成URL時服務器(Apache/nginx/whatever)應該不輸出文件的內容,(如果配置正確)。相反,它應該執行該文件並返回執行的代碼的輸出。

您需要使用內部file path來包含該文件。 而對於那dirname(__FILE__)將在計算relative path有用。

+0

你介意舉個例子,我還沒有完全理解。我不認爲我可以使用內部文件路徑從一個子域調用 – Higeath

+0

如果你的意思是說,該文件不存在於當前目錄中,那麼你實際上可以通過使用雙點向上導航來建立相對路徑目錄,如果你說這個文件對你來說無法在子域上訪問,那麼爲什麼不把它複製到子域可訪問的目錄中。 –

+0

因爲我不想複製文件,所以稍後我會對這些文件進行一些更改,並且我不會記得總是將它複製到2個目錄中,否則會造成混亂。相對路徑不起作用,因爲瀏覽器無法訪問cms.domain.com之前的文件夾,只能在文件夾中進一步獲取。 – Higeath

相關問題