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实现递归循环每一个目录
Aug 08 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
ThinkPHP实现ajax仿官网搜索功能实例
Dec 02 PHP
php实现读取和写入tab分割的文件
Jun 01 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
Mar 12 PHP
PHP创建对象的六种方式实例总结
Jun 27 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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变量可用字符
2014/05/28 PHP
php遍历目录方法小结
2015/03/10 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
js 深拷贝函数
2008/12/04 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
关于js datetime的那点事
2011/11/15 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
《花瓣飘香》教学反思
2014/04/15 职场文书
企业法人任命书
2015/09/21 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL