当前位置:首页 > CMS教程 > Thinkphp > 列表

tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-11 12:52:58 浏览: 评论:0 

这篇文章主要介绍了tp5.0框架隐藏index.php入口文件及模块和控制器的方法,结合实例形式分析thinkPHP5.0隐藏index.php入口文件及模块和控制器的具体配置方法、操作技巧与相关注意事项,需要的朋友可以参考下。

本文实例讲述了tp5.0框架隐藏index.php入口文件及模块和控制器的方法,分享给大家供大家参考,具体如下:

1. 隐藏入口文件:

[ IIS ]

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:

  1. <rewrite> 
  2.  <rules> 
  3.  <rule name="OrgPage" stopProcessing="true"
  4.  <match url="^(.*)$" /> 
  5.  <conditions logicalGrouping="MatchAll"
  6.  <add input="{HTTP_HOST}" pattern="^(.*)$" /> 
  7.  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
  8.  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
  9.  </conditions> 
  10.  <action type="Rewrite" url="index.php/{R:1}" /> 
  11.  </rule> 
  12.  </rules> 
  13.  </rewrite> 

[ Apache ]

httpd.conf配置文件中加载了mod_rewrite.so模块

AllowOverride None 将None改为 All

把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下

  1. <IfModule mod_rewrite.c> 
  2. Options +FollowSymlinks -Multiviews 
  3. RewriteEngine on 
  4. RewriteCond %{REQUEST_FILENAME} !-d 
  5. RewriteCond %{REQUEST_FILENAME} !-f 
  6. RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]//此处与官网不同,官网是这样写,尝试不中,修改成一下可以 
  7. RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1
  8. </IfModule> 

2. 模块和控制器隐藏:

public目录下的index.php入口文件里添加define('BIND_MODULE', 'index/index');,如下:

  1. <?php 
  2. // [ 应用入口文件 ] 
  3. define('BIND_MODULE''index/index'); 
  4. // 定义应用目录 
  5. define('APP_PATH', __DIR__ . '/../application/'); 
  6. // 加载框架引导文件 
  7. require __DIR__ . '/../thinkphp/start.php'

设置后,我们的URL访问地址则变成:

http://serverName/index.php/操作/[参数名/参数值...]

扩展:

tp5.1隐藏控制器和模块与5.0不同,入口文件中修改如下:

Container::get('app')->bind('index/index')->run()->send()

Tags: tp5.0框架隐藏index.php

分享到: