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 一个比较完善的简单文件上传
Mar 25 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
php中JSON的使用与转换
Jan 14 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
php实现可运算的验证码
Nov 10 PHP
实例讲解yii2.0在php命令行中运行的步骤
Dec 01 PHP
twig模板获取全局变量的方法
Feb 05 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
PHP实现websocket通信的方法示例
Aug 28 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
采用call方式实现js继承
2014/05/20 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python实现从百度API获取天气的方法
2015/03/11 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python随机数random模块使用指南
2016/09/09 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
公司财务工作总结的自我评价
2013/11/23 职场文书
初中地理教学反思
2016/02/19 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
Nginx内网单机反向代理的实现
2021/11/07 Servers