thinkPHP5.0框架URL访问方法详解


Posted in PHP onMarch 18, 2017

本文实例讲述了thinkPHP5.0框架URL访问方法。分享给大家供大家参考,具体如下:

URL设计

ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是:

http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]

支持切换到命令行访问,如果切换到命令行模式下面的访问规则是:

>php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...]

可以看到,无论是URL访问还是命令行访问,都采用PATH_INFO访问地址,其中PATH_INFO的分隔符是可以设置的。

注意:5.0取消了URL模式的概念,并且普通模式的URL访问不再支持,如果不支持PATHINFO的服务器可以使用兼容模式访问如下:

http://serverName/index.php(或者其它应用入口文件)?s=/模块/控制器/操作/[参数名/参数值...]

必要的时候,我们可以通过某种方式,省略URL里面的模块和控制器。

URL大小写

默认情况下,URL是不区分大小写的,也就是说 URL里面的模块/控制器/操作名会自动转换为小写,控制器在最后调用的时候会转换为驼峰法处理。

例如:

http://localhost/index.php/Index/Blog/read
// 和下面的访问是等效的
http://localhost/index.php/index/blog/read

如果访问下面的地址

http://localhost/index.php/Index/BlogTest/read
// 和下面的访问是等效的
http://localhost/index.php/index/blogtest/read

在这种URL不区分大小写情况下,如果要访问驼峰法的控制器类,则需要使用:

http://localhost/index.php/Index/blog_test/read

如果希望URL访问严格区分大小写,可以在应用配置文件中设置:

// 关闭URL中控制器和操作名的自动转换
'url_convert'  => false,

一旦关闭自动转换,URL地址中的控制器名就变成大小写敏感了,例如前面的访问地址就要写成:

http://localhost/index.php/Index/BlogTest/read

但是下面的URL访问依然是有效的:

http://localhost/index.php/Index/blog_test/read

下面的URL访问则无效:

http://localhost/index.php/Index/blogtest/read

需要注意:路由规则中定义的路由地址是按照控制器名的实际名称定义(区分大小写)。

隐藏入口文件

在ThinkPHP5.0中,出于优化的URL访问原则,还支持通过URL重写隐藏入口文件,下面以Apache为例说明隐藏应用入口文件index.php的设置。

下面是Apache的配置过程,可以参考下:

1、httpd.conf配置文件中加载了mod_rewrite.so模块
2、AllowOverride None 将None改为 All
3、在应用入口文件同级目录添加.htaccess文件
,内容如下:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
PHP的5个安全措施小结
Jul 17 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
解决php extension 加载顺序问题
Aug 16 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 PHP
thinkPHP5.0框架模块设计详解
Mar 18 #PHP
thinkPHP5.0框架命名空间详解
Mar 18 #PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 #PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 #PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 #PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 #PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 #PHP
You might like
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
js编写简易的计算器
2020/07/29 Javascript
python动态监控日志内容的示例
2014/02/16 Python
python中list循环语句用法实例
2014/11/10 Python
python机器学习之神经网络(一)
2017/12/20 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python 动态绘制爱心的示例
2020/09/27 Python
用python进行视频剪辑
2020/11/02 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
美国知名的家庭连锁百货商店:Boscov’s
2017/07/27 全球购物
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
请介绍一下Ant
2016/07/22 面试题
岳麓书院导游词
2015/02/03 职场文书
武侯祠导游词
2015/02/04 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
针对吵架老公保证书
2015/05/08 职场文书
项目合作意向书
2015/05/08 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js