本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:- Thinkphp5 如何隐藏入口文件index.php(URL重写)
- 浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
- Thinkphp通过一个入口文件如何区分移动端和PC端
- thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
- ThinkPHP中url隐藏入口文件后接收alipay传值的方法
- ThinkPHP入口文件设置及相关注意事项分析
- thinkphp隐藏index.php/home并允许访问其他模块的实现方法
- ThinkPHP框架里隐藏index.php
- Nginx配置PATHINFO隐藏thinkphp index.php
- ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
- thinkphp3.2实现跨控制器调用其他模块的方法
- ThinkPHP中URL路径访问与模块控制器之间的关系