將 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 權限。AcceptPathInfo On(Apache 預設開啟)。