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高手?学会“懒惰”的编程
Dec 05 PHP
php 删除记录实现代码
Mar 12 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
php数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php学习笔记之面向对象
Nov 08 PHP
PHP实现股票趋势图和柱形图
Feb 07 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 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
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
js类中获取外部函数名的方法与代码
2007/09/12 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
Python日志syslog使用原理详解
2020/02/18 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
2014年班主任工作总结
2014/11/08 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
校园安全教育心得体会
2016/01/15 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
试了下Golang实现try catch的方法
2021/07/01 Golang
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
MSSQL基本语法操作
2022/04/11 SQL Server