2013-06-27 48 views
-2

我們有一個寄存器,包含所有應從我們的WEB服務器提供的文件(WEB頁面)。 我可以將Apache配置爲執行特定的腳本/程序來驗證請求的頁面是否已註冊? 如果請求的頁面沒有註冊,則會顯示「頁面未找到」。Apache/PHP文件驗證

+0

你所說的一個 '註冊' 是什麼意思?爲什麼他們會成爲您不想提供服務的服務器上的文件? – Pitchinnate

+1

這讓我擔心在第一個例子中允許未註冊或未批准的文件進入您的服務器,這對您來說不是一個擔心。 – Anigel

+0

該寄存器是一個數據庫,其中包含文件名和位置,版本,校驗和有關該文件的其他詳細信息。我淤塞的細節用於驗證文件。 – user2038893

回答

0

我已經讀了幾次你的問題,但即使如此,仍然不是100%瞭解你的要求。請更新一些更多的細節。

如果沒有找到頁面,Apache會發送一個404,所以即時通訊假設您允許服務器上的任意文件(in-dev或版本化文件等),但正試圖找出如何檢查文件或請求文件被加載之前允許的文件列表

這可以用PHP和mod_rewrite的完成,

用PHP,你可以不喜歡粗例子

所以:

<?php 
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 

if(check_register($path)){ 
    //load page into buffer 
    ob_start(); 
    require($path); 

    echo ob_get_clean(); 
}else{ 
    exit(header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found')); 
} 
?> 

check_register($path)功能將是某種機制來檢查文件是否是允許並返回truefalse,您需要將所有內容都傳遞給此路由文件(index.php),以便請求不會載入原始文件(如果它存在)。

的.htaccess

RewriteEngine On 
Options -Indexes 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule .* index.php [L] 
+0

這似乎是我正在尋找的答案。我只需要測試和確認。 – user2038893