上次寫了Search Engine Friendly的URL設計- 俺在這個事上面折騰,要實現這個http://www.myhost.com/foo.php?a=A&b=B&c=C -> http://www. myhost.com/foo.php/a/A/b/B/c/C的url轉換,實際上還有不同的辦法.
比如說我用的是虛擬主機,也想實現url優化,但是我沒有伺服器權限,此時可以從PATH_INFO來下手.
訪問http://www.myhost.com/foo.php/a/A/b/B/c/C這個url的時候,如果apache的AllowPathinfo已經打開,用php訪問$_SERVER['PATH_INFO']可以得到a/A/b/B/c/C這一串字元這時候再用php加以解析:
PLAIN TEXTPHP:
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];
}
這樣就可以簡單的將PATH_INFO轉換為全域的$_GET陣列,這樣還有個好處
http://www.myhost.com/foo.php?a=A&b=B&c=C
http://www.myhost.com/foo.php/a/A/b/B/c/C
上面的url同時可以訪問,保證了通用性