
我们的程序都是动态的,也想实现url优化,但是我没有服务器权限,怎么办? 很简单,我们可以从 $_SERVER[”REQUEST_URI”]和 $_SERVER[’PATH_INFO’]来下手:
原网站访问地址是 http://www.phpweblog.net/test.php?a=1&b=2&c=3
使用了 mode_rewrite 函数后,就可以用 http://www.phpweblog.net/test.php/a/1/b/2/c/3来访问了,而且程序基本不用修改.
function mod_rewrite(){
if ( isset ( $_SERVER [ ’ PATH_INFO ’ ])){
$url = substr ( $_SERVER [ ’ PATH_INFO ’ ] , 1 );
$url = explode ( ’ / ’ , $url );
foreach ( $url as $key => $value ){
if ( $key % 2 != 1 ){
if ( $value != ’’ ) $_GET [ $value ] = $url [ $key + 1 ];
$querystring [] = $value . ’ = ’ . $url [ $key + 1 ];
}
}
$_SERVER [ ’ QUERY_STRING ’ ] = implode ( " & " , $querystring );
$_SERVER [ ’ PHP_SELF ’ ] = substr ( $_SERVER [ ’ PHP_SELF ’ ]
, 0 , strpos ( $_SERVER [ ’ PHP_SELF ’ ] , ’ .php ’ ) + 4 );
$_SERVER [ ’ REQUEST_URI ’ ] = $_SERVER [ ’ PHP_SELF ’ ]
. ’ ? ’ . $_SERVER [ ’ QUERY_STRING ’ ];
}
}
mod_rewrite();
http : // www.phpweblog.net/test.php/a/1/b/2/c/3
echo ’ <pre> ’ ;
echo " GET数组如下:<br /> " ;
print_r ( $_GET );
Array
(
[a] => 1
[b] => 2
[c] => 3
)