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 相关文章推荐
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
php采集时被封ip的解决方法
Aug 29 PHP
php目录操作实例代码
Feb 21 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
php验证session无效的解决方法
Nov 04 PHP
Zend Framework实现将session存储在memcache中的方法
Mar 22 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
php表单处理操作
Nov 16 PHP
php实现表单提交上传文件功能
May 28 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
JS交换变量的方法
2015/01/21 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
浅析javascript的return语句
2015/12/15 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python带参数打包exe及调用方式
2019/12/21 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
django迁移文件migrations的实现
2020/03/31 Python
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
金融行业务员的自我评价
2013/12/13 职场文书
留学顾问岗位职责
2014/04/14 职场文书
水电工程师岗位职责
2015/02/13 职场文书
高中团支书竞选稿
2015/11/21 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书