tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析


Posted in PHP onFebruary 11, 2020

本文实例讲述了tp5.0框架隐藏index.php入口文件及模块和控制器的方法。分享给大家供大家参考,具体如下:

1. 隐藏入口文件:

[ IIS ]

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:

<rewrite>
 <rules>
 <rule name="OrgPage" stopProcessing="true">
 <match url="^(.*)$" />
 <conditions logicalGrouping="MatchAll">
 <add input="{HTTP_HOST}" pattern="^(.*)$" />
 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
 </conditions>
 <action type="Rewrite" url="index.php/{R:1}" />
 </rule>
 </rules>
 </rewrite>

[ Apache ]

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

AllowOverride None 将None改为 All

把下面的内容保存为.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]//此处与官网不同,官网是这样写,尝试不中,修改成一下可以
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>

2. 模块和控制器隐藏:

public目录下的index.php入口文件里添加define('BIND_MODULE', 'index/index');,如下:

<?php
// [ 应用入口文件 ]
define('BIND_MODULE', 'index/index');
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

设置后,我们的URL访问地址则变成:

http://serverName/index.php/操作/[参数名/参数值...]

扩展:

tp5.1隐藏控制器和模块与5.0不同,入口文件中修改如下:

Container::get('app')->bind('index/index')->run()->send()

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
开发大型 PHP 项目的方法
Jan 02 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 PHP
php使用递归计算文件夹大小
Dec 24 PHP
浅谈php冒泡排序
Dec 30 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
thinkphp5框架路由原理与用法详解
Feb 11 #PHP
php数组指针函数功能及用法示例
Feb 11 #PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 #PHP
php-7.3.6 编译安装过程
Feb 11 #PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 #PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 #PHP
tp5框架基于ajax实现异步删除图片的方法示例
Feb 10 #PHP
You might like
php设置页面超时时间解决方法
2015/09/22 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
JS控制表格隔行变色
2006/06/26 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
JavaScript 命名空间 使用介绍
2013/08/29 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
Python类装饰器实现方法详解
2018/12/21 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
Artist Guitars新西兰:乐器在线商店
2017/09/17 全球购物
华为c/c++笔试题
2016/01/25 面试题
国际贸易个人求职信范文
2014/01/04 职场文书
高级编程求职信模板
2014/02/16 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
财产分割协议书范本
2014/11/03 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
Java使用Unsafe类的示例详解
2021/09/25 Java/Android