我是靠谱客的博主 大胆百褶裙,最近开发中收集的这篇文章主要介绍Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试第二部分第三部分,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试
Thinkphp为我们提供URL的一些变化,我们可以为了系统的安全性,用户更好的体验,我们可以在前台应用或者后台应用的配置文件中添加相应的配置,使得URL可以不区分大小写,伪静态,路由等等功能,我们需要哪个应用更改就到哪个应用下去更改对应的config文件,所有的配置规则都是以数组的形式进行配置可以看出,数组在计算机当中是非常重要的,应用非常广泛,因为它清晰明了,应用广泛。
下面就是一些配置及其说明:
<?php
return array(
//'配置项'=>'配置值'
'URL_CASE_INSENSITIVE'=>false,//url不区分大小写
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀
'URL_ROUTER_ON'=>true,
'URL_ROUTE_RULES'=>array(
'my/:id'=>'Index/index',//动态和静态混合地址路由
),
);
?>
return array(
//'配置项'=>'配置值'
'URL_CASE_INSENSITIVE'=>false,//url不区分大小写
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀
'URL_ROUTER_ON'=>true,
'URL_ROUTE_RULES'=>array(
'my/:id'=>'Index/index',//动态和静态混合地址路由
),
);
?>
但是值得注意的是:在实验的过程中,有时候缓存是一个很大的干扰,有时候我们删除对应应用目录下面的runtime文件还是没有用,都会出现各种很奇怪的异常,这时候我们解决的办法就是关闭浏览器,甚至重启一些服务器,然后重新进入项目,这时候一般来说还是比较靠谱的;
第二部分
在URL配置文件中可能需要配置多个配置项,每个配置项代表一条规则,比如:我们有时候传递多个参数,我们需要传递id,name,还需要传递年月日,那么我们就需要在配置文件中写多条配置规则:
<?php
return array(
//'配置项'=>'配置值'
'URL_CASE_INSENSITIVE'=>false,//url不区分大小写
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀
'URL_ROUTER_ON'=>true,
'URL_ROUTE_RULES'=>array(
'/^my/(d+)$/'=>'Index/index?id=:1',
'/^my/(w+)$/'=>'Index/index?name=:1',
'/^my/(d{4})/(d{2})/(d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
),
);
?>
return array(
//'配置项'=>'配置值'
'URL_CASE_INSENSITIVE'=>false,//url不区分大小写
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀
'URL_ROUTER_ON'=>true,
'URL_ROUTE_RULES'=>array(
'/^my/(d+)$/'=>'Index/index?id=:1',
'/^my/(w+)$/'=>'Index/index?name=:1',
'/^my/(d{4})/(d{2})/(d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
),
);
?>
这一种是最有效的方式:就是利用正则表达式的方式:
'/^my/(d+)$/'=>'Index/index?id=:1',
可以看到正则表达式是以/开头以/结束,/^my/,表示必须以my开始,正斜杠表示一个元字符,但是为了不让系统识别
成结束标志,因为正则表达式是以/开头以/结束,所以需要反斜杠转义一下,(d+)表示数字至少一个,反斜杠也是转义的意思,这里$表示结束的标志,然后后面的?id=:'1'中的1表示模式,就是前面正则表达式的第一个括号中的内容
;然后下面的规则依此类推;
一共三种方式:
3、注意事项:
1.越复杂的路由越往前面放
'URL_ROUTE_RULES'=>array(
'my/:year/:month:/:day'=>'Index/day',
'my/:idd'=>'Index/index',
'my/:name'=>'Index/index',
)
2.可以使用$作为完全匹配的路由规则
'URL_ROUTE_RULES'=>array(
'my/:idd$'=>'Index/index',
'my/:name$'=>'Index/index',
'my/:year/:month:/:day$'=>'Index/day',
),
3.用正则匹配的方式
'URL_ROUTE_RULES'=>array(
'/^my/(d+)$/'=>'Index/index?id=:1',
'/^my/(w+)$/'=>'Index/index?name=:1',
'/^my/(d{4})/(d{2})/(d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
),
1.越复杂的路由越往前面放
'URL_ROUTE_RULES'=>array(
'my/:year/:month:/:day'=>'Index/day',
'my/:idd'=>'Index/index',
'my/:name'=>'Index/index',
)
2.可以使用$作为完全匹配的路由规则
'URL_ROUTE_RULES'=>array(
'my/:idd$'=>'Index/index',
'my/:name$'=>'Index/index',
'my/:year/:month:/:day$'=>'Index/day',
),
3.用正则匹配的方式
'URL_ROUTE_RULES'=>array(
'/^my/(d+)$/'=>'Index/index?id=:1',
'/^my/(w+)$/'=>'Index/index?name=:1',
'/^my/(d{4})/(d{2})/(d{2})$/'=>'Index/day?year=:1&month=:2&day=:3',
),
可以看到一共三种方式,第一种方式是最原始简单,也是最弱的
第三部分
URL重写,实际上重写就是隐藏一下入口文件,使得用户体验更好,系统更加安全,这需要按照手册进行三步操作;
最后
以上就是大胆百褶裙为你收集整理的Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试第二部分第三部分的全部内容,希望文章能够帮你解决Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试第二部分第三部分所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复