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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
十天学会php之第六天
Oct 09 PHP
目录,文件操作详谈―PHP
Nov 25 PHP
PHP 函数语法介绍一
Jun 14 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
php 深入理解strtotime函数的使用详解
May 23 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
使用Appcan客户端自动更新PHP版本号(全)
Jul 31 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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中一个控制字符串输出的函数
2006/10/09 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
PHP数组相关函数汇总
2015/03/24 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
Python实现的二维码生成小软件
2014/07/11 Python
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
python 拼接文件路径的方法
2018/10/23 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
python线程里哪种模块比较适合
2020/08/02 Python
销售简历自我评价
2014/01/24 职场文书
党员年终个人总结
2015/02/14 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS