上次寫了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(Unix平台最流行的WEB服務器平台)的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同時可以訪問,保證了通用性