当前位置:网站首页>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
边栏推荐
- laravel怎么获取到public路径
- js中复选框checkbox如何判定为被选中
- Vs tool word highlight with margin
- Excessive dependence on subsidies, difficult collection of key customers, and how strong is the potential to reach the dream of "the first share of domestic databases"?
- 【花雕体验】15 尝试搭建Beetle ESP32 C3之Arduino开发环境
- AE learning 01: AE complete project summary
- Wireless sensor networks -- ZigBee and 6LoWPAN
- thinkphp3.2.3中设置路由,优化url
- [excelexport], Excel to Lua, JSON, XML development tool
- asyncio 概念和用法
猜你喜欢
企业级日志分析系统ELK
过度依赖补助,大客户收款难,冲刺“国产数据库第一股”的达梦后劲有多足?
Leetcode-231-2的幂
讲师征集令 | Apache SeaTunnel(Incubating) Meetup 分享嘉宾火热招募中!
[flower carving experience] 15 try to build the Arduino development environment of beetle esp32 C3
模仿企业微信会议室选择
分步式監控平臺zabbix
You Yuxi, coming!
Numpy -- epidemic data analysis case
torch.numel作用
随机推荐
模仿企业微信会议室选择
Bidding announcement: Fujian Rural Credit Union database audit system procurement project (re bidding)
The unity vector rotates at a point
Is it reliable to open an account on Tongda letter with your mobile phone? Is there any potential safety hazard in such stock speculation
Three. JS introductory learning notes 18: how to export JSON files with Blender
The inevitable trend of the intelligent development of ankerui power grid is that microcomputer protection devices are used in power systems
用手机在通达信上开户靠谱吗?这样炒股有没有什么安全隐患
Step by step monitoring platform ZABBIX
【花雕体验】15 尝试搭建Beetle ESP32 C3之Arduino开发环境
一个普通人除了去工厂上班赚钱,还能干什么工作?
目标跟踪常见训练数据集格式
laravel post提交数据时显示异常
How to determine whether the checkbox in JS is selected
A JS script can be directly put into the browser to perform operations
Wireless sensor networks -- ZigBee and 6LoWPAN
MySQL中, 如何查询某一天, 某一月, 某一年的数据
95. (cesium chapter) cesium dynamic monomer-3d building (building)
Good news! Kelan sundb database and Hongshu technology privacy data protection management software complete compatibility adaptation
Talk about the cloud deployment of local projects created by SAP IRPA studio
通知Notification使用全解析