|
app下有个route.php,路由配置文件,可以用来简化路径。通过简化路径可以让访客猜不到真实模块所在的文件夹。
关于路由,这里有个手册写的很详细,图文式,容易理解 https://www.kancloud.cn/ldkt/tp5_route 售价9.9,不是我写的哈,试读可以看一部分内容
一、单参数
比如写一个
- 'qss/[:name]' => ['index/index/qss', ['method' => 'get','ext' => 'html']],
复制代码
在控制器index.php里写
- public function qss($name='qss')
- {
- return 'qss方法的name='.$name;
- print_r($this->request->param()); //打印接收到的全部参数
- }
复制代码
就可以访问 /qss/123.html 得到结果了,实际原始路径是/index/index/qss/name/123
这里的[:name]的中括号表示,参数可以有,也可以无。如果去掉中括号,则必须要有参数。
'ext' => 'html' 意思是,必须是.html后缀,不加也不认
二、多参数改分隔符
如/index/index/qss2/aaa/111/bbb/222/ccc/333.html
希望改成 /qss/aaa/ddd-333-ccc-444-eee-555.html
*URL分隔符,在config.php里找到 pathinfo_depr 把 '/' 改 '-' 即可
三、日期正则
- public function today($year='2019',$month='05')
- {
- echo "今天是$year年$month月";
- }
复制代码
如访问 /index/index/today/year/2019/month/05
想改为 /today/2019/05.html
路由配置如下
- 'today/:year/:month' =>['index/index/today',['method'=>'get'],['year']=>'\d{4}','moth'=>'\d{2}']],
复制代码
正则匹配为年必须4位数字,月必须2位数字,否则不认,正则相关知识请另外学习
如果加上[]号,就是选填,可以访问/today 不报错
- 'today/[:year]/[:month]' =>['index/index/today',['method'=>'get'],['year']=>'\d{4}','moth'=>'\d{2}']],
复制代码
|
|