2011-08-25 30 views
0

我正在寻找一个非常轻量级的路由框架(与php-skel一起去)。用PHP重写URL而不是服务器配置

我想调查的第一件事是以类似于服务器配置中指定的方式指定php文件中的重写规则(“未找到”处理程序)。

这里有一个潜在的例子(但我想知道什么框架提供的东西这个轻量级):

文件route.php:

route('application/api', '/api/index.php'); 
route('application', '/application/index.php'); 

文件参加办法/ index.php文件:

route(':module/:action', function($module, $action) { 
    include(__DIR__ . '/' . $module . '/' . $action . '.php'); 
}); 

什么是轻量级路由框架/功能或技术?

回答

0

PHP有一个parse url函数可以很容易地用于路由。 然后,您可以调用返回的路径部分的explode()以获取url组件的数组。

-2

PHP无法以mod_rewrite的方式重写URL,它只能重定向到其他页面,这基本上是服务器上命中次数的两倍(1次命中php脚本,2次命中重定向目标)。

但是,您可以让PHP脚本动态加载了“重定向”网页的内容:

switch($_GET['page']) { 
    case 1: 
     include('page1.php'); 
     break; 
    case 2: 
     include('page2.php'); 
     break; 
    default: 
     include('page1.php'); 
} 

this'd是非常透明的用户,你会得到基本的mod_rewrite作为同样的效果。通过适当的查询和path_info参数,您可以很好地复制mod_write“漂亮”网址。

2

PHP的方式:

http://example.com/index.php/controller/action/variables

$routing = explode("/" ,$_SERVER['PATH_INFO']); 
$controller = $routing[1]; 
$action = $routing[2]; 
$variables = $routing[3];