Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> Web 伺服器

Windows IIS 主機 WordPress 完美偽靜態:404 重導向法實戰教學

編輯:Web 伺服器

適用場景

  • Windows 主機 (IIS 6/7/7.5/8/8.5/10)
  • 虛擬主機/受控面板支援自訂 404 錯誤頁面
  • 無法安裝 ISAPI Rewrite 組件 (無管理員權限)
  • 想移除網址中 index.php,實現美觀永久連結

核心原理:利用 404 捕獲所有請求 → 內部重寫至 index.php

WordPress 依賴 REQUEST_URI / PATH_INFO 解析路由。IIS 預設不支援 PATH_INFO,但我們可透過自訂 404 頁面 (PHP) 手動重建這兩個變數,再 include('index.php') 交由 WordPress 核心處理。

實作步驟

1. 建立 404 處理器檔案

新建文字檔,命名 wp-404-handler.php,內容:

<?php
$qs = $_SERVER['QUERY_STRING'];
// 典型 IIS QUERY_STRING 格式: 404;https://domain.com:80/path/info
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80') + 3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

關鍵點: strpos($qs, ':80') 假設網站跑在 80 埠;若為其他埠 (如 8080) 請自行調整。

2. 設定自訂 404 錯誤頁面

  • 虛擬主機控制台 → 「錯誤頁面」/「自訂錯誤」 → 404 → 類型選「URL」或「檔案」 → 指向 /wp-404-handler.php。
  • IIS 管理員 (若有權限):「網站屬性」→「自訂錯誤」→ 404 → 編輯屬性 → 「URL」→ /wp-404-handler.php。

3. WordPress 後台設定永久連結

後台 → 「設定」→「永久連結」→ 選擇任意結構 (如 /%postname%.html、/%category%/%postname%) → 存檔。完全視為 Linux 主機操作即可。

4. 測試驗證

瀏覽文章頁、分類頁、標籤頁、搜尋頁、分頁,確認:
✅ 網址無 index.php
✅ 頁面正常顯示
✅ 分頁、評論、搜尋功能正常

進階建議:永久連結結構選擇

  • 推薦: /%postname%.html 或 /%post_id%.html — 扁平、偽靜態感強、SEO 友善。
  • 避免: 過深層級 (如 /%year%/%month%/%day%/%postname%) — 增加 404 判斷成本。
  • 關於 .html 後綴: 加上偽裝靜態檔案,利於傳統搜尋引擎辨識;不加則 URL 更簡潔,現代搜尋引擎皆可完美索引。視站長偏好決定。

常見問題排查

現象可能原因解決
首頁正常,內頁全 404404 處理器路徑錯誤 / 未生效檢查控制台設定、檔案大小寫、路徑是否為站點根目錄相對路徑
網址仍含 index.phpWP 判斷為非 Apache 環境確認 REQUEST_URI/PATH_INFO 正確重建;檢查 .htaccess 是否殘留干擾規則
中文網址亂碼/404URL 編碼/解碼不一致確保 WP 版本 ≥ 4.2 (原生支援 UTF-8);檢查 PHP mbstring 擴充
後台媒體庫/上傳失效路徑解析錯誤檢查 wp-config.php 中 WP_CONTENT_URL 設定

原理補充:為何這招有效?

IIS 收到請求 → 找不到實體檔案 → 觸發 404 → 執行 wp-404-handler.php → 手動建構 WordPress 所需的超全域變數 → include('index.php') 啟動 WP 核心 → WP 解析路由 → 輸出頁面。
整個過程對瀏覽器透明,狀態碼仍為 200 OK (WP 內部處理),搜尋引擎視為正常頁面。

結語

「404 重導向法」是 Windows 虛擬主機跑 WordPress 偽靜態的零成本、零權限、高相容 終極方案。只要控制台支援自訂 404,幾分鐘即可完成,徹底告別醜陋的 index.php 網址。

Copyright © Windows教程網 All Rights Reserved