URL路由网址详解

    路由模式的网址为:/index.php/控制器/Action类方法/参数名1/参数1/参数名2/参数2

    相当于标准模式的网址:/index.php?router=控制器/Action类方法&参数名1=参数1&参数名2=参数2

    通过上面实例不难区分路由模式与标准模式的网址两者之间的差别。也许你会问:路由模式与标准模式这两种网址如何切换呢?前面文档有篇:配置文件使用说明中 urlFormat 关于这个内置参数的说明先仔细看一下。切换方法:打开主配置文件application.php,找到如下代码

    当开启Rewrite功能时,/index.php可以省略

    网址的模式则为:/控制器/Action类方法/参数名1/参数1/参数名2/参数2。

    如果对于 /参数名1/参数1/参数名2/参数2 这种URL参数赋值方式不习惯。也可以采用:/控制器/Action类方法/?参数名1=参数1&参数名2=参数2。

    随着Nginx的广泛使用,Nginx的Rewrit功能相当强悍,其Rewrite规则编写也较为简单,所以由服务器低层能解决的问题,就没有必要拿到PHP的层面来进行实现。所以从DoitPHP V2.3起,对URL路由网址自定义功能进行大刀阔斧的删减。目前在路由网址自定义方面,仅支持网址分割符的自定义。

    网址分割符默认为"/",如果网址/product/list/page/12,您认为目录太多,您想简化一下实现/product-list-page-12这样的网址,只需将分割符自定义为“-”,就可以了。具体设置参见前面文档:配置文件的使用说明中关于urlSegmentation这个内置参数的详细说明。不过话又说回来,自定义网址分割符在实际开发中,真的不多见。一般情况下用不到。

    如果这里有:controller为demo, method为testAction类方法,参数名为page, 参数为23。有这些信息,如何得到一个URL路由网址,这里要调用Controller的一个方法:createUrl();操作如下: