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

PHP 智能 404 跳轉:域名遷移保持路徑不變的完美方案

     編輯:PHP 綜合知識

應用場景

網站更換域名(如 jb51.cn → jb51.net),目錄結構完全一致,需將舊域名所有 404 頁面自動導向新域名對應路徑。

完整 404 頁面代碼 (404.php)

<!DOCTYPE html>
<html lang="zh-TW">
<head>
    <meta charset="GB2312">
    <title>頁面遷移中...</title>
    <meta http-equiv="refresh" content="5; url=https://www.jb51.net<?= $_SERVER['REQUEST_URI'] ?>">
    <style>
        body {font-family: Microsoft JhengHei, sans-serif; text-align:center; padding-top: 50px;}
        .btn {display:inline-block; margin-top:20px; padding:10px 20px; background:#007bff; color:#fff; text-decoration:none; border-radius:4px;}
    </style>
</head>
<body>
    <h1>本站已啟用新域名</h1>
    <p>您訪問的舊地址:<code>https://www.jb51.cn<?= htmlspecialchars($_SERVER['REQUEST_URI']) ?></code></p>
    <p>系統正為您跳轉至:<code>https://www.jb51.net<?= htmlspecialchars($_SERVER['REQUEST_URI']) ?></code></p>
    <p><a class="btn" href="https://www.jb51.net<?= $_SERVER['REQUEST_URI'] ?>">立即跳轉</a></p>
    <p>或等待 5 秒自動跳轉...</p>
</body>
</html>

Web 伺服器配置

Apache (.htaccess)

ErrorDocument 404 /404.php

Nginx

server {
    listen 80;
    server_name www.jb51.cn;
    root /var/www/old_site;
    
    location / {
        try_files $uri $uri/ /404.php;
    }
    
    # 確保 PHP 處理 404.php
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

進階:301 永久重定向(更利 SEO)

若舊域名仍解析到同一伺服器,建議直接在 Web 伺服器層做 301,無需 PHP 處理:

# Nginx
server {
    server_name www.jb51.cn;
    return 301 https://www.jb51.net$request_uri;
}

# Apache
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.jb51\.cn$ [NC]
RewriteRule ^(.*)$ https://www.jb51.net/$1 [R=301,L]

對比

方案HTTP 狀態SEO 權重傳遞適用場景
Web Server 301301 Moved Permanently完全傳遞域名遷移、結構不變、舊域名仍可控
PHP 404 + Meta Refresh404 Not Found → 200 OK不傳遞(視為新頁)舊域名已失控、需保留舊站部分功能、無法配置 Web Server
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved