我使用Apache 2.2.X和PHP 5.2.X(作爲Apache模塊安裝)來構建新網站,我想閱讀您關於我如何處理服務器錯誤。
我正在考慮使用我的主頁(/index.php)的相同文件來顯示自定義錯誤消息。 這是我的.htaccess設置:現在Index.php as自定義錯誤頁面
ErrorDocument 400 /index.php?error=400
ErrorDocument 401 /index.php?error=401
ErrorDocument 403 /index.php?error=403
ErrorDocument 404 /index.php?error=404
ErrorDocument 500 /index.php?error=500
,在我的index.php文件我有一些代碼,看起來像這樣:
if (isset($_GET['error']))
DrawErrorPage($_GET['error']);
else
DrawHomepage();
一切工作就像一個魅力。
好吧,除了一件我無法修復的東西之外的所有東西:如果我強制Apache使用500狀態碼進行響應(例如,將畸形代碼插入到我的.htaccess中),我沒有被重定向到「/index.php ?error = 500「,但我得到了默認的500錯誤頁面。使用任何其他狀態代碼(例如403或404),我的配置完全可以正常工作。
但現在我懷疑了,我開始認爲使用另一個頁面來處理錯誤會更好(例如,「/ error.php」)。
「DrawHomepage()」需要將「robots」元標記設置爲「index,follow」,而「DrawErrorPage()」需要將其設置爲「noindex,nofollow」。對?那麼......如果網絡抓取工具首次訪問我的主頁時出現錯誤響應,會發生什麼?如果一個網絡爬蟲第一次訪問我的主頁200次,但一個月後500次訪問它會發生什麼?如果我將我的「機器人」元標記保留爲「索引,跟蹤」,即使我顯示錯誤,會發生什麼?
對於這個問題,是否有解決方法?你會怎麼做?
非常感謝!
好記約重發狀態碼。 – FakeRainBrigand 2011-12-14 01:10:29