2013-02-03 64 views
1

我試圖設置一個使用Twitter引導作爲前端和PHP作爲代碼的新網站。在public_html文件夾外訪問php代碼

我使用的目錄結構如下,比較規範的

c:\xampp\htdocs\app 
c:\xampp\htdocs\app\application\configs 
c:\xampp\htdocs\app\application\modules 
c:\xampp\htdocs\app\data\ 
c:\xampp\htdocs\app\data\logs 
c:\xampp\htdocs\app\data\sessions 
c:\xampp\htdocs\public_html\ 
c:\xampp\htdocs\public_html\css 
c:\xampp\htdocs\public_html\js 
c:\xampp\htdocs\public_html\img 

我的Apache的配置是相當簡單的,由

<VirtualHost *:80> 

ServerName vinner.localhost 
DocumentRoot C:/xampp/htdocs/app/public_html 
SetEnv APPLICATION_ENV "development" 
<Directory C:/xampp/htdocs/app/public_html> 
    DirectoryIndex index.php index.html index.htm \ 
       default.php default.asp default.shtml default.html default.htm \  AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

以前我有我的PHP/public_html文件夾中的代碼,但這顯然不是很好的做法,所以我已經將它移動到c:\ xampp \ htdocs \ app \ application \ modules但是我無法弄清楚如何指向POST查詢直接到PHP頁面,或創建一個通用的PHP模板/包含文件,這樣我的PHP頁面就可以輕鬆訪問。

+0

爲什麼php在'public_html'之外? –

+0

任何旨在處理直接輸入或直接輸出內容的PHP文件都應該在'public_html'中,其他任何東西都應該放在webroot includes,libraries等之外......你不應該把所有東西都移動到外面,因爲這樣做沒有任何意義。 –

+0

@crypticツ,爲什麼不呢?在webroot裏面有.js或者.css文件,然後是最簡單的代碼,index.php引用外部的.php文件會很好地工作嗎? – Chud37

回答

2

您應該在「public_html」目錄中有一個通常稱爲「index.php」的文件。然後,您的Web服務器規則(例如.htaccess或服務器配置)將所有請求(或可能是所有不適用於「public_html」中存在的文件的請求)指向該「public_html/index.php」。這通常是「public_html」下的唯一PHP文件,但有時爲了不同的目的可能有多個(例如,用於服務圖像的不同的文件)。

從那裏,你可以包括使用相對路徑代碼的其餘部分,每個以下的等效(在 「的public_html/index.php」 包含的代碼):

include __DIR__ . '/../application/[application-code].php'; 

和:

include dirname(__DIR__) . '/application/[application-code].php'; 

其中「application-code」是應用程序的入口點,通常被命名爲「bootstrap.php」。