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 采集心得技巧
May 15 PHP
php中var_export与var_dump的区别分析
Aug 21 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
php实现telnet功能示例
Apr 08 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php计算整个目录大小的方法
Jun 01 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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/01/09 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
Script的加载方法小结
2011/01/12 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python ljust rjust center输出
2008/09/06 Python
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
简单实现python进度条脚本
2017/12/18 Python
Python 变量类型详解
2018/10/10 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
Python实现网站表单提交和模板
2019/01/15 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
Python自省及反射原理实例详解
2020/07/06 Python
Python读写压缩文件的方法
2020/07/30 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
运动会宣传口号
2014/06/09 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
会计求职自荐信范文
2015/03/04 职场文书
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript