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继承的一个应用
Sep 06 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
Linux下创建nginx脚本-start、stop、reload…
Aug 03 PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
Laravel 5框架学习之表单
Apr 08 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
mysqli扩展无法在PHP7下升级问题的解决
Sep 10 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之uniqid()函数用法
2014/11/03 PHP
php简单获取复选框值的方法
2016/05/11 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
Firefox div高度自适应
2009/04/28 Javascript
JavaScript访问样式表代码
2010/10/15 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
优秀女职工事迹材料
2014/02/06 职场文书
班组拓展活动方案
2014/08/14 职场文书
初中学校对照检查材料
2014/08/19 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
2015毕业寄语大全
2015/02/26 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
公司捐书倡议书
2015/04/27 职场文书
孟佩杰观后感
2015/06/17 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
比较node.js和Deno
2021/04/27 Javascript