php URI的获取,兼容文件存在于子目录
据说$_SERVER['REQUEST_URI']只能在Apache才可以用(没测试过),所以只兼容Apache。http://example.com/UR IRouter.php/Hello/World或http://example.com/dir/URIRouter.php/Hello/World返回值: Hello/World 设置.htaccess后:http://example.com/Hello/World或 http://example.com/dir/Hello/World返回值: Hello/World
URIRouter.php
$requestURI = trim($_SERVER['REQUEST_URI'],'/'); $appPath = trim(dirname($_SERVER['SCRIPT_NAME']),'/');//获取所在目录 $fileName = trim(str_replace(dirname($_SERVER['SCRIPT_NAME']),'', $_SERVER['SCRIPT_NAME']),'/');//获取文件名称 echo trim(str_replace($fileName,'',trim(str_replace($appPath,'',$requestURI),'/')),'/');
.htaccess
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ URIRouter.php [QSA,L]