Thinkphp5 如何隐藏入口文件index.php(URL重写)


Posted in PHP onOctober 16, 2019

大家好,我是Yangrl.

路由在框架中的作用打个比方的话,路由好比是WEB应用的总调度室,对于访问的URL地址,路由可以拒绝或者接受某个URL请求,并进行分发调度,而且还有一个副作用是因为路由规则可以随意定义,因此可以让你的URL请求地址更优雅,因为不会暴露实际的URL地址,也就意味着更安全——《ThinkPHP5路由完全指南》

在之前,比如我们要访问index 模块下的 Index控制器 下的index方法,在vhost(虚拟主机/虚拟域名)下,是这样的繁琐的一行URL地址:

tp5.com/index.php/index/Index/index

不舒服,不优雅(啧啧)对吧?所以我们学习路由,可以简化,可以DIY,不仅舒服好看,还提升了安全性等方面。

开始学习TP5路由部分,先记下隐藏入口文件index.php也就是URL重写的方法:

一.加载httpd.conf配置文件中mod_rewrite.so模块:

如果是集成环境,大概是已经开启了,我用的phpStudy 2018,默认开启了,地址在

盘符:\phpStudy\PHPTutorial\Apache\conf->CTRL+F搜索:mod_rewrite.so->如果前面有#号,删掉就表示加载了该模块。

Thinkphp5 如何隐藏入口文件index.php(URL重写)

二. 将AllowOverride None 的None改为 All:

这在phpStudy中也是默认ALL的,搜索AllowOverride会发现不止一个,那怎么选?改哪一个?你如果不确定,就都改!哈哈哈哈哈哈,其实我觉得就是第三步下面的directory中的allowoverride,见下图。

三. 搜索DocumentRoot 将根目录设置成你的入口文件所在目录:

默认是public目录.

Thinkphp5 如何隐藏入口文件index.php(URL重写)

四.修改.htaccess文件:

把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下,就在public目录。

(其实现在的TP5版本.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>

五.重启Apache服务器:

ojbk.

环境:phpStudy 2018/ThinkPHP5.0.14/php7/Apache

(如果是其他服务器,可参阅官方手册 URL重写)

以上这篇Thinkphp5 如何隐藏入口文件index.php(URL重写)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP Token(令牌)设计
Mar 15 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
Windows中使用计划任务自动执行PHP程序实例
May 09 PHP
php json转换成数组形式代码分享
Nov 10 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
YII框架常用技巧总结
Apr 27 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 PHP
php判断IP地址是否在多个IP段内
Aug 18 PHP
在thinkphp5.0路径中实现去除index.php的方式
Oct 16 #PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
Oct 16 #PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 #PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 #PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 #PHP
laravel 如何实现引入自己的函数或类库
Oct 15 #PHP
Laravel 类和接口注入相关的代码
Oct 15 #PHP
You might like
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
PHP常见的6个错误提示及解决方法
2016/07/07 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP count()函数讲解
2019/02/03 PHP
js资料prototype 属性
2007/03/13 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
python转换摩斯密码示例
2014/02/16 Python
Python中实现的RC4算法
2015/02/14 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
淘宝客服自我总结鉴定
2014/01/25 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
JS数组的常用方法整理
2021/03/31 Javascript