2012-11-17 42 views
8

我的大學有哪些具有跨越它們鏡像相同數據的多個服務器,這樣我就可以訪問例如禁用下載

foo.uni.edu/file.php 
bar.uni.edu/file.php 

的事情是,不是所有的服務器都安裝了PHP ,所以任何人都可以下載我的PHP文件,如果他們通過沒有安裝PHP的服務器進行連接。 有沒有辦法,可能用.htaccess來避免這種情況?如在,如果PHP服務器安裝,只允許打開PHP文件?

+1

您可能可以使用''。 – mario

+0

爲什麼不僅限制訪問單個(負載平衡)服務器? – Kubee

回答

1

如果可以將文件存儲在文檔根目錄之外,則可以通過將所有敏感數據存儲在docroot之外來解決此問題。然後,您可以使用公開訪問的腳本使用include來訪問這些文件。

所以,如果你上傳到/username/public_html,並public_html是您的文檔根目錄(例如,foo.uni.edu/file.php/username/public_html/file.php),那麼你就上傳到/username/file.php代替,並把另一個腳本中/username/public_html它僅僅包含了類​​似include('../file.php');

這在任何情況下都是很好的做法,以防服務器上的配置錯誤阻止解析PHP。

您也可以嘗試使用IfModuleFilesMatch如果未啓用mod_php拒絕訪問PHP文件:

<IfModule !mod_php.c> 
    <FilesMatch "\.php$"> 
     Order Deny,Allow 
     Deny from All 
    </FilesMatch> 
</IfModule> 

如果這不起作用,嘗試!mod_php5.c代替。

+0

當試圖訪問一個php文件(在安裝了php的服務器中)時,任何一個mod都會給予權限拒絕錯誤 – vascoFG

+0

服務器是否可以運行一個古老的PHP4安裝?如果是這樣,請嘗試'!mod_php4.c'。如果這也行不通,恐怕我很難過。 – Kelvin