thinkphp 正则路由】的更多相关文章

正则路由也就是采用正则表达式定义路由的一种方式,依靠强大的正则表达式,能够定义更灵活的路由规则. 路由表达式支持的正则定义必须以“/”开头,否则就视为规则表达式.也就是说如果采用: '#^blog\/(\d+)$#' => 'Blog/read/id/:1' 方式定义的正则表达式不会被支持,而会被认为是规则表达式进行解析,从而无法正确匹配. 下面是一种正确的正则路由定义: '/^new\/(\d{4})\/(\d{2})$/' => 'News/achive?year=:1&month…
简单的说,URL 路由就是允许你在一定规则下定制你需要的 URL 样子,以达到美化 URL ,提高用户体验,也有益于搜索引擎收录的目的. 例子 原本的 URL 为: http://www.5idev.com/index.php/Products/Show/category/5/id/123 该 URL 的本意是显示第 5 分类中 id 为 123 的产品.经过 URL 路由改写后 URL 可以为: http://www.5idev.com/index.php/product/5/123 如果使用…
规则路由是一种比较容易理解的路由定义方式,采用ThinkPHP设计的规则表达式来定义. 规则表达式 规则表达式通常包含静态地址和动态地址,或者两种地址的结合,例如下面都属于有效的规则表达式: 'my' => 'Member/myinfo', // 静态地址路由 'blog/:id' => 'Blog/read', // 静态地址和动态地址结合 'new/:year/:month/:day'=>'News/read', // 静态地址和动态地址结合 ':user/:blog_id' =&g…
首先解释一下,这里路由的意思是:系统从URL参数中分析出当前请求的分组.控制器.操作 .另外我的网址根目录是放在article目录下的,Thinkphp主要有下面几种路由形式 1.pathinfo路径形式[默认方式]   →   http://网址/index.php/分组/控制器/操作方法 比如我访问home分组下的index控制器中的hello方法 或者访问add方法 如果直接访问127.0.0.1/article 会默认路由到index控制器的index方法 2.基本get形式  →  …
Thinkphp是一个体系较为完整的框架,很多地方比国外的框架功能都全,唯一不喜之处是性能,和传说中的.NET有点像. Thinkphp提供较全url处理体系,通过同一规则实现Url的路由和Url生成,Url的生成是通过U('',[])函数获取的.当我在一个Thinkphp中建立两个Application时,其中一个是子目录,发现U()函数获取的Url只能指向的根目录,这使我很恼火,网上找不到合适的方法,经查看U函数源码得到了一个答案! Thinkphp的App目录是通过使用__APP__预编译…
在thinkPHP项目中,为了掩藏 public/index.php 路径时,需要修改相关的 Apache httpd.confi 文件.ThinkPHP .htaccess文件 修改 Apache httpd.confi 增加 mod_rewrite.so 来重写路由 打开 httpd.confi 文件:修改三个地方 LoadModule rewrite_module modules/mod_rewrite.so //启用 mod_rewrite.so <Directory "${SRV…
这个知识点,我觉得蛮重要的. 不作任何路由定义的TP,URL格式和controller之间,相当于强绑定. 路由配置,让URL和controller的关系可以自定义. URL生成,让controller内部的代码可以灵活定位路由配置,从而动态生成最终URL. 为了将URL地址和处理方法之间解藕,各个框架都在作努力,以方便开发人员自定义.…
静态路由其实属于规则路由的静态简化版(又称为URL映射),路由定义中不包含动态参数,静态路由不需要遍历路由规则而是直接定位,因此效率较高,但作用也有限. 如果我们定义了下面的静态路由 'URL_ROUTER_ON' => true, 'URL_MAP_RULES'=>array( 'new/top' => 'news/index?type=top' ) 注意:为了不影响动态路由的遍历效率,静态路由采用URL_MAP_RULES定义和动态路由区分开来 定义之后,如果我们访问: http:/…
1.在application中下的config.php中 以下代码改为true // 是否开启路由 'url_route_on' => true, // 是否强制使用路由 'url_route_must' =>true, 2.然后在route.php中定义路由 ps:把初始化的那些代码删除,不然无法使用路由          注意一定要加上 use think\Route; <?php use think\Route; Route::get('/home/:name',function…
在ThinkPHP框架中,是支持URL路由功能,要启用路由功能,需要设置ROUTER_ON 参数为true. 开启路由功能后,系统会自动进行路由检测,如果在路由定义里面找到和当前URL匹配的路由名称,就会进行路由解析和重定向. 在tp中,程序会先从请求的url中解析出来一串字符,如果没有开启路由的话,那么tp就会从这串字符中解析出来模块,控制器和方法以及参数. 如果开启路由的话,那么tp会遍历路由规则数组,然后用从url解析出来的这串字符依次和路由表达式进行正则匹配或者规则匹配,会优先匹配到一个…