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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
《PHP边学边教》(01.开篇――准备工作)
Dec 13 PHP
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
Thinkphp模板中使用自定义函数的方法
Sep 23 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 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
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
js动态给table添加/删除tr的方法
2013/08/02 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
Python合并多个装饰器小技巧
2015/04/28 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python操作csv文件实例详解
2017/07/31 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Python模块future用法原理详解
2020/01/20 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
super关键字的用法
2012/04/10 面试题
小学教师自我鉴定
2013/11/07 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
课程改革实施方案
2014/03/16 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js