当前位置:网站首页>Introduction to ThinkPHP URL routing
Introduction to ThinkPHP URL routing
2022-07-07 16:21:00 【Full stack programmer webmaster】
To put it simply ,URL Routing allows you to customize what you need under certain rules URL Looks like , To beautify URL , Improve user experience , It is also beneficial to the purpose of search engine collection .
Example
The original URL by :
http://www.5idev.com/index.php/Products/Show/category/5/id/123
The URL The original intention of is to show 5 In the classification id by 123 Products . after URL After route rewriting URL It can be for :
http://www.5idev.com/index.php/product/5/123
If Use .htaccess Of documents Rewrite The rules hide the entry file , The top URL It can be further simplified to :
http://www.5idev.com/product/5/123
This URL The address is relatively simple and easy to look .
Tips : Use Apache Of URL Rewrite Rules can also be achieved URL Customized functions , It's not going to unfold here , For those interested, please refer to Apache Rewrite Related articles .
ThinkPHP URL Routing configuration
stay ThinkPHP To be used in URL Routing functions , The following configuration is required :
stay Project configuration file Conf/config.php Inside, the routing function is enabled ( Set to true):
'URL_ROUTER_ON' => true,
Routing rule definition
And 2.x Different versions ,3.0 Routing rules are defined in the project configuration file config.php Inside , The format is array , The specific definition rules are divided into rule route and regular route . The syntax of rule routing is as follows :
Format 1:' Routing rules '=>'[ grouping / modular / operation ]? Extra parameters 1= value 1& Extra parameters 2= value 2...'
Format 2:' Routing rules '=>array('[ grouping / modular / operation ]',' Extra parameters 1= value 1& Extra parameters 2= value 2...')
Format 3:' Routing rules '=>' External address '
Format 4:' Routing rules '=>array(' External address ',' Redirection code ')
Syntax description
- The routing rule is that we should URL Rules shown in , The following element values are actual URL Address and parameters
- In the routing rule, if : start , Represents a dynamic variable , Otherwise, it is a static address
- Format 2 The additional parameters of can be passed into array or string
- Routing rules support numerical constraint definitions of variables , for example :’product/:id\d’=>’Products/Show’
- Non numeric variables of routing rules support exclusion , for example ‘news/:cate^add|edit|delete’=>’News/category’
- Routing rules support complete matching definitions , for example :’product/:id\d$’=>’Products/Show’
- The static address part of the routing rule is not case sensitive
- If you want to reference dynamic variables in the external address , use :1、:2 The way
- Regular routing can support Full dynamic and dynamic static combination definition , for example ‘:user/blog/:id’=>’Home/Blog/user’
These rules and grammatical descriptions are rather obscure , The following will be examples to compare in order to understand the above routing rules and syntax instructions .
If the routing enable function is defined in the configuration file , The system is executing Dispatch When parsing , Will judge the present URL Whether there is a defined route name , If there is, it will follow the defined routing rules URL analysis .
ThinkPHP URL Routing instance
Take the example at the beginning of this article , See how the route is defined . In the project profile Conf/config.php The following rules are defined in :
// Route definition
'URL_ROUTE_RULES'=> array(
'product/:category\d/:id\d'=>'Products/Show', // Rule routing
),
When we visit the following address :
http://www.5idev.com/index.php/product/5/123
The address will be resolved to Products Modular Show operation , And pass in get Parameters category=5&id=123.
If there are additional fixed parameters , Such as status=1, You can define routes :
'product/:category\d/:id\d'=>'Products/Show?status=1', // Rule routing
That is, match the following URL Address :
http://www.5idev.com/index.php/product/5/123/1
The above is in the format 1 To define the route , With additional parameters , It can be converted to 2 Define... Formats :
'product/:category\d/:id\d'=>array('Products/Show','status=1')
In the above routing rules \d Indicates that only numbers are matched , When this constraint is not applied , Then all characters can be matched , This is also the default . If you want to strictly agree on the format of the incoming parameters , Please use Regular route definition rules .
Routing format : External address
For routing format 3 And format 4, The matching route format is detected , Then jump to the external address , The difference is format 4 There is redirection code , Such as 301 Represents a permanent redirect .
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/113177.html Link to the original text :https://javaforall.cn
边栏推荐
- 招标公告:福建省农村信用社联合社数据库审计系统采购项目(重新招标)
- 分步式監控平臺zabbix
- Shader basic UV operations, translation, rotation, scaling
- Performance comparison of tidb for PostgreSQL and yugabytedb on sysbench
- 航運船公司人工智能AI產品成熟化標准化規模應用,全球港航人工智能/集裝箱人工智能領軍者CIMC中集飛瞳,打造國際航運智能化標杆
- Continuous creation depends on it!
- How to implement backspace in shell
- What about the pointer in neural network C language
- PHP中exit,exit(0),exit(1),exit(‘0’),exit(‘1’),die,return的区别
- 删除 console 语句引发的惨案
猜你喜欢
Eye of depth (VII) -- Elementary Transformation of matrix (attachment: explanation of some mathematical models)
Numpy -- data cleaning
95.(cesium篇)cesium动态单体化-3D建筑物(楼栋)
SPI master rx time out中断
2022 the 4th China (Jinan) International Smart elderly care industry exhibition, Shandong old age Expo
星瑞格数据库入围“2021年度福建省信息技术应用创新典型解决方案”
分步式監控平臺zabbix
Notification uses full resolution
10 schemes to ensure interface data security
Xcode Revoke certificate
随机推荐
通知Notification使用全解析
Balanced binary tree (AVL)
强化实时数据管理,英方软件助力医保平台安全建设
ThinkPHP URL 路由简介
【花雕体验】15 尝试搭建Beetle ESP32 C3之Arduino开发环境
torch.numel作用
Description of vs common shortcut keys
What about the pointer in neural network C language
Continuous creation depends on it!
PyTorch 中的乘法:mul()、multiply()、matmul()、mm()、mv()、dot()
Leetcode-231-2的幂
讲师征集令 | Apache SeaTunnel(Incubating) Meetup 分享嘉宾火热招募中!
Laravel service provider instance tutorial - create a service provider test instance
Talk about the cloud deployment of local projects created by SAP IRPA studio
hellogolang
asyncio 概念和用法
2022 the 4th China (Jinan) International Smart elderly care industry exhibition, Shandong old age Expo
MySQL数据库基本操作-DQL-基本查询
Xcode Revoke certificate
Eye of depth (VII) -- Elementary Transformation of matrix (attachment: explanation of some mathematical models)