首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 實作自訂 404 錯誤頁面:最佳實務與 SEO 考量

     編輯:PHP 綜合知識

為什麼需要自訂 404 頁面?

預設的伺服器 404 頁面通常極其簡陋,甚至洩露伺服器版本資訊。自訂 404 頁面不僅能維持品牌視覺一致性,更能引導迷途用戶回到有效內容,降低跳出率。雖然 Google 官方聲稱 404 不直接影響排名,但良好的用戶體驗間接提升網站信任度與留存。

PHP 核心實作:發送正確狀態碼

關鍵在於 必須在輸出任何內容前 發送 HTTP 404 狀態碼,否則搜尋引擎會誤判為 200 OK(軟 404),導致無效頁面被收錄。

<?php
// 1. 發送標準 HTTP/1.1 404 狀態碼(必須最先執行)
http_response_code(404); // PHP 5.4+ 推薦寫法

// 兼容舊版 PHP 或特定 SAPI 的備用寫法
// header('HTTP/1.1 404 Not Found');
// header('Status: 404 Not Found'); // FastCGI 環境有時需要

// 2. 載入自訂錯誤頁面模板
$template = __DIR__ . '/../templates/404.php';
if (is_readable($template)) {
    include $template;
} else {
    // 兜底:極簡 HTML 回應
    echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>404 Not Found</title></head>';
    echo '<body><h1>頁面不存在</h1><p>返回首頁</p></body></html>';
}
exit;
?>

404 頁面模板設計建議 (404.php)

<!DOCTYPE html>
<html lang="zh-Hant">
<head>
    <meta charset="UTF-8">
    <title>找不到頁面 - 網站名稱</title>
    <meta name="robots" content="noindex, nofollow"> <!-- 防止搜尋引擎收錄錯誤頁 -->
    <style>/* 這裡放入與主站一致的 CSS */</style>
</head>
<body>
    <div class="container">
        <h1>404 - 頁面走失了</h1>
        <p>抱歉,您訪問的頁面不存在或已被移動。</p>
        <nav aria-label="錯誤頁導航">
            <a href="/" class="btn">回首頁</a>
            <a href="/sitemap" class="btn">查看網站地圖</a>
            <a href="/search" class="btn">站內搜尋</a>
        </nav>
        <!-- 可選:熱門文章推薦、站內搜尋框、幽默插圖 -->
    </div>
</body>
</html>

Apache / Nginx 層面的 404 設定(效能更佳)

對於靜態資源(圖片、CSS、JS)不存在的情況,由 Web Server 直接處理比透過 PHP 處理效能高得多。

Apache (.htaccess)

ErrorDocument 404 /error/404.php
# 確保錯誤頁面本身不會觸發 404 循環
ErrorDocument 404 /error/404.html  # 純靜態頁更佳

Nginx (nginx.conf / site.conf)

server {
    # ...
    error_page 404 /error/404.html;
    location = /error/404.html {
        internal; # 防止直接訪問
        root /var/www/html;
    }
}

驗證 404 狀態碼是否正確

  • 瀏覽器開發者工具:Network 標籤 → 選取請求 → Headers → Status Code: 404
  • curl 指令:`curl -I https://example.com/nonexistent` → `HTTP/1.1 404 Not Found`
  • 線上工具:如 HTTP Status Code Checker、Google Search Console「網址檢查」功能。

SEO 與用戶體驗的平衡

核心原則:優先考量用戶體驗,而非單純為 SEO。
- 不要將所有 404 重導向首頁(軟 404,Google 會懲罰)。
- 要提供清晰導航、搜尋入口、熱門內容推薦。
- 要監控 404 日誌(Google Search Console / 伺服器 Log),修復高頻率的斷鏈(設定 301 重導向)。

總結

正確的 404 實作 = http_response_code(404) + 友善模板 + 伺服器層面靜態資源處理 + 持續監控修復。這不只是技術細節,更是尊重用戶時間的體現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved