boaPHP开发手册v5.5

路由定义

路由表位于实例cfg目录下(如:/www/cfg/router.php),在开启路由的情况下,解析URL和生成URL均优先检索此表。一条完整的路由规则如下:


	[
		'url'    => 'news/{name}/{id}.html',
		'act'    => 'news.content.show',
		'method' => 'get',
		'scheme' => 'http',
		'param'  => [
			'id' => '(\d+)'
		]
	]
	

url

必须,待匹配的URL规则,和请求URL中的路径部分进行匹配

开头和结尾的 / 可以省略,不影响匹配结果

act

必须,模块.控制器.动作(节点式),发生匹配后,则路由到这里

method

可选,请求方式(如post),限定该规则只对该方式有效

请求方式不区分大小写

scheme

可选,请求协议(如https),限定该规则只对该协议有效

param

可选,限定url中参数值的匹配规则,使用正则表达式。如本例中,{name}参数未设置匹配规则,则默认使用配置中param_val定义的规则(匹配非常宽松),{id}参数设置了规则 (\d+) ,表示只匹配数字。

  • http://boasoft.top/news/a0/c8.html {id}不匹配,限定为数字
  • http://boasoft.top/news/b1/1.html 匹配,得到一组环境数据:
    
    [
    	'mod' => 'news',
    	'con' => 'content',
    	'act' => 'show',
    	'var' => [
    		'name' => 'b1'
    		'id'   => 1
    	]
    ]
    

程序会执行 'news.content.show' 动作,在该动作中可以用 $this->name 和 $this->id 来访问参数

开发中遇到路由表修改后不生效的问题,请先尝试删除临时目录下的缓存(var/www/cache/)