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桌面中心(四) 数据显示
Mar 11 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php cookies中删除的一般赋值方法
May 07 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
php计算整个目录大小的方法
Jun 19 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 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在服务器执行exec命令失败的解决方法
2012/03/03 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
js如何找出字符串中的最长回文串
2018/06/04 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
Python中针对函数处理的特殊方法
2014/03/06 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
python 重定向获取真实url的方法
2018/05/11 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
亿企通软件测试面试题
2012/04/10 面试题
财务会计专业毕业生自荐信
2013/10/02 职场文书
学生个人的自我评价分享
2013/11/05 职场文书
房地产融资计划书
2014/01/10 职场文书
农民工创业典型事迹
2014/01/25 职场文书
毕业典礼邀请函
2015/01/31 职场文书
2016年寒假见闻
2015/10/10 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书