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

PHP 實現 Search Engine Friendly URL(PATH_INFO 方案)

     編輯:PHP 相關知識

目標

將 foo.php?a=A&b=B&c=C 轉為 foo.php/a/A/b/B/c/C,且兩種格式皆可存取,無需伺服器重寫規則權限。

原理

Apache 預設開啟 AcceptPathInfo,請求 /foo.php/a/A/b/B/c/C 時,$_SERVER['PATH_INFO'] 為 /a/A/b/B/c/C。

解析代碼


if (!empty($_SERVER['PATH_INFO'])) {
    $paths = explode('/', substr($_SERVER['PATH_INFO'], 1));
    for ($i = 0, $cnt = count($paths); $i < $cnt; $i++) {
        $_GET[$paths[$i]] = @(string)$paths[++$i];
    }
}

效果

  • https://host/foo.php?a=A&b=B ✓
  • https://host/foo.php/a/A/b/B ✓
  • 兩者共存,相容性極佳。

適用場景

  • 虛擬主機無 mod_rewrite 權限。
  • 快速為舊專案加入 SEO 友善網址。
  • REST 風格 API 入口點。

注意

  • 需確認 AcceptPathInfo On(Apache 預設開啟)。
  • 參數值含特殊字元需 URL 編碼。
  • 現代框架建議使用路由元件(如 FastRoute、Symfony Router)而非手工解析。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved