Rewrite與404錯誤頁面各有優勢。它們的一些區別:
1、404錯誤頁面的優勢可能在於不用調用Rewrite模塊,Rewrite需要調用此模塊。因此404錯誤頁面可能會更節省資源,使大型網站的速度更快一些。我編寫的靜態化網頁,目前大多數都是使用404錯誤。
2、使用404錯誤頁面,不能被POST和GET。例如305.php?name1=auiou,假如此305.php頁面是用404錯誤產生,則此$_GET["name1"]的值不會被讀取。其它頁面的<form>使用POST方法將action指向此404錯誤產生的305.php,也無法被接收,例如<form method=post action=305.php>所發送的信息無法被305.php接收。
如果您希望產生的虛擬路徑如305.php被POST和GET,使用Rewrite可解決。
3、電腦軟硬件應用網(http://www.45it.com)發現404錯誤頁面的開頭有一些Linux空間必須寫入這句<?Header("HTTP/1.1 200 OK");?>,有一些Linux空間則必須寫為<?Header("Status: 200 OK");?>才可以被搜索引擎收錄,否則會被認為是404頁面。調試時,可以在網上搜索“404 檢測工具”進行測試。
Rewrite是否需要寫語句,我還沒有測試過。
4、404錯誤頁面的規則相對不嚴格,因此有更好的適應范圍。Rewrite相對更嚴格,例如305.html與305-1.html需要寫2個重寫規則;使用404錯誤頁面只要一個規則即可。這也是我使用404錯誤,而不使用Rewrite的另一個重要原因。