thinkphp 正则路由

正则路由也就是采用正则表达式定义路由的一种方式,依靠强大的正则表达式,能够定义更灵活的路由规则。

路由表达式支持的正则定义必须以“/”开头,否则就视为规则表达式。也就是说如果采用:

  1. ‘#^blog\/(\d+)$#‘ => ‘Blog/read/id/:1‘

方式定义的正则表达式不会被支持,而会被认为是规则表达式进行解析,从而无法正确匹配。

下面是一种正确的正则路由定义:

  1. ‘/^new\/(\d{4})\/(\d{2})$/‘ => ‘News/achive?year=:1&month=:2‘,

对于正则表达式中的每个变量(即正则规则中的子模式)部分,如果需要在后面的路由地址中引用,可以采用:1、:2这样的方式,序号就是子模式的序号。

正则定义也支持函数过滤处理,例如:

  1. ‘/^new\/(\d{4})\/(\d{2})$/‘ => ‘News/achive?year=:1|format_year&month=:2‘,

其中 year=:1|format_year 就表示对匹配到的变量进行format_year函数处理(假设format_year是一个用户自定义函数)。

更多的关于如何定义正则表达式就不在本文的描述范畴了。

大理石平台检验标准

原文地址:https://www.cnblogs.com/furuihua/p/11777320.html

时间: 2024-11-09 09:45:51

thinkphp 正则路由的相关文章

ThinkPHP URL 路由功能详解与实例

本节内容导读 本节内容主要介绍 ThinkPHP 路由功能与 U方法的使用,分为下面几个部分: ThinkPHP URL 路由功能详解:见本页下面文字 ThinkPHP 正则路由与实例 ThinkPHP U方法:使用U方法自动生成URL超链接 ThinkPHP 3.0 版本的路由功能较 2.x 版本有较大的变更,如果您的版本是 2.x,请参阅下面的文档: ThinkPHP 2.0 URL 路由(2.0版本适用) ThinkPHP 泛路由使用详解(2.0版本适用) ThinkPHP 2.1 路由规

thinkPHP定义路由

URL地址里面的index模块怎么才能省略呢,默认的URL地址显得有点长,下面就来说说如何通过路由简化URL访问. 我们在路由定义文件(application/route.php)里面添加一些路由规则,如下: return [ // 添加路由规则 路由到 index控制器的hello操作方法 'hello/:name' => 'index/index/hello', ]; 该路由规则表示所有hello开头的并且带参数的访问都会路由到index控制器的hello操作方法. 路由之前的URL访问地址

thinkphp 规则路由

规则路由是一种比较容易理解的路由定义方式,采用ThinkPHP设计的规则表达式来定义. 规则表达式 规则表达式通常包含静态地址和动态地址,或者两种地址的结合,例如下面都属于有效的规则表达式: 'my' => 'Member/myinfo', // 静态地址路由 'blog/:id' => 'Blog/read', // 静态地址和动态地址结合 'new/:year/:month/:day'=>'News/read', // 静态地址和动态地址结合 ':user/:blog_id' =&g

thinkphp 静态路由

静态路由其实属于规则路由的静态简化版(又称为URL映射),路由定义中不包含动态参数,静态路由不需要遍历路由规则而是直接定位,因此效率较高,但作用也有限. 如果我们定义了下面的静态路由 'URL_ROUTER_ON' => true, 'URL_MAP_RULES'=>array( 'new/top' => 'news/index?type=top' ) 注意:为了不影响动态路由的遍历效率,静态路由采用URL_MAP_RULES定义和动态路由区分开来 定义之后,如果我们访问: http:/

thinkphp url路由中去除index.php

第一步:打开Apache中的配置文件:httped.conf,将mod.rewrite.so这条注释去除. 第二步:将AllowOverride Node修改为AllowOverride All 第三步:在文件根目录中创建.htaccess 在文件中写入 <IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule

ThinkPHP 3.2.3 URL 路由的使用

ThinkPHP3.2.3 手册中路由的地址是: http://www.kancloud.cn/manual/thinkphp/1706 简单配置实例:在配置文件 config.php 中添加 //路由 'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES' => array( 'c/:id' => 'Home/List/index',//id是参数的名称,使用get获取. //例如访问 http://servername/c/9 //实际访问的url是ht

ThinkPHP仿58同城一站多城市路由配置技巧及二级域名部署技巧

ThinkPHP在PATHINFO的URL模式下,URL的格式类似于http://www.domain.com/appName/module/action 即:http://www.domain.com/分组名/模块名/方法名 或者:http://www.domain.com/模块名/方法名 然而在有些类似于58同城这样的应用中,需要分城市展示不同的页面内容,我们希望在网站域名后面紧跟一个城市目录,也即这种格式: http://www.domain.com/城市名/模块名/方法名,根据不同的城市

thinkphp学习笔记10—看不懂的路由规则

路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INFO,PATH_INFO是什么呢?手册中提到“要使用路由功能,前提是你的URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式的情况下不支持路由功能),” , url支持path_info,不是apache要支持path_info么,度娘讲的还算清楚一点,见下文: pathinfo(PHP 4 >= 4.0.3, PHP 5)path

第二百六十三也,Tornado框架-基于正则的动态路由映射分页

Tornado框架-基于正则的动态路由映射分页 分页基本显示数据 第一步.设置正则路由映射配置,(r"/index/(?P<page>\d*)", index.indexHandler),正则匹配访问路径,访问录index/后面可以是可以是0个或多个数字第二步.配置逻辑处理方法,get()方法里显示对应的页面,并传值一个SHUJU全局变量列表到html模板,这个全局变量列表里是字典显示的数据第三步.在html模板里用模板语言,循环这个列表里的字典,显示到表格里第四步.设置用