2015-10-26 133 views
0

尋找一點幫助,我有一個基本的PHP索引頁面設置在wamp上。在PHP中處理異常

通過在瀏覽器中導航到localhost/test /進行訪問。

但是,如果我追加「'」,則導航到url時,會返回正在使用的apache的版本以及用於通信的端口,這可能會在錯誤的手中造成危險。

你能告訴我有沒有一種快速的方法來處理PHP中的任何未解析的網址,以返回「輸入的網址不正確」的消息?

我非常新,所以任何幫助將不勝感激。

的代碼是:

<?php include "config.php"; ?> 

我曾嘗試使用Google,但被不熟悉的術語是使這個幾乎是不可能的。

謝謝韋恩

回答

1

有兩個(主)的方式來做到這一點:

選項1 - 路由所有流量的特定頁面

首先,你可以將所有流量到一個頁面並處理其中的錯誤。您可以通過將RewriteRule添加到您的.htaccess文件中來實現此目的。例如:

RewriteRule .* index.php 

然後您的index.php必須處理合法和不正確的URL。

選項2 - 使用自定義錯誤處理頁面

創建文檔處理404。例如:

<?php 
echo "Sorry, that page wasn't found"; 

設置文件作爲404處理器在.htaccess這一規則:

ErrorDocument 404 /errors/404.php 

(其中404.php是不管你命名你剛纔創建的文件)

選項2更容易,但在更復雜的應用中,選項1通常是可取的。

+0

嗨,埃德,感謝您的答覆,你會知道任何一步一步的指南選項2?由於我對這一點很陌生,所以我們的這些條款在我的頭上。 –

+0

@WayneBowden我試圖解釋它。有沒有一個不明確的步驟?你只需要創建一個頁面,比如404.php,它可以處理你的404錯誤,並將'ErrorDocument 404/errors/404.php'行添加到你的'.htaccess'文件中。如果不清楚,請告訴我哪個部分沒有意義。 –

+0

好的,謝謝,只是一些澄清問題,.htaccess文件是我需要在其他網頁的文件夾中創建的東西,還是這是在wamp目錄中更改的東西? –

0

嘗試將不同的頁面放入文件,然後設置一個「路由器」,它檢查所需的URL並呈現相應的頁面。這樣的事情:

// index.php 

function goToURL ($url) { 
    // render the page at $url 
    include ($url); 
} 

$routed = false; 
$url = $_SERVER ['SCRIPT_URL']; 
$routes = array (
    '/foo' => 'SomePage.php', 
    '/bar' => 'OtherPage.php' 
); 

foreach ($routes as $k => $v) { 
    if (strpos ($url, $k) !== false) { 
     goToURL ($v); 
     $routed = true; 
    } 
} 

// if no specific url matches then just send them to the home page 
if (!$routed) { 
    goToURL ('Home.php'); 
} 
+0

感謝您的回覆, 我應該只是將此代碼添加到index.php文件中,我包含了上面的所有代碼? –

+0

原帖中的代碼應該放在'Main.php'或'Login.php'之類的東西里面。我的帖子中的代碼意在進入'index.php',因爲這是默認情況下Web服務器將服務器的內容。您的網址看起來像「mysite.com/index.php/foo」。這與CodeIgniter和其他PHP框架的功能相似。儘管我的例子更簡單。 – erapert