欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TP5隐藏入口文件(public/index.php),phpstudy环境中apache服务器下

程序员文章站 2024-03-26 13:55:11
...

参考文章

.htaccess技巧: URL重写(Rewrite)与重定向(Redirect)
TP5.1隐藏public/index.php第二种方式
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 是什么意思?

效果图

未隐藏入口文件时:
TP5隐藏入口文件(public/index.php),phpstudy环境中apache服务器下
隐藏入口文件后:
TP5隐藏入口文件(public/index.php),phpstudy环境中apache服务器下

具体步骤

在TP5根目录中添加.htaccess文件就可以了,文件内容如下

<IfModule mod_rewrite.c> #如果mode_rewrite.c模块存在 则执行以下命令
  Options +FollowSymlinks -Multiviews
  RewriteEngine On #开启 rewriteEngine
  # !-d 不是目录或目录不存在
  RewriteCond %{REQUEST_FILENAME} !-d 
  # !-f 不是文件或文件不存在
  RewriteCond %{REQUEST_FILENAME} !-f 

  RewriteRule ^(.*)$ public/index.php [QSA,PT,L]
  # 参数解释
  # ^(.*)$: 匹配所有的路口映射
  # QSA: (Query String Appending)表示保留参数入get传值?xxx==xx;
  # PT: 把这个URL交给Apache处理;
  # L: 作为最后一条,遇到这条将不再匹配这条之后的规则
</IfModule>

我的理解

我使用的是phpstudy集成环境,应用apache服务器
TP5隐藏入口文件(public/index.php),phpstudy环境中apache服务器下
在设置了站点后,apache默认访问你设置的站点目录下的index.php或是index.html文件(这些配置是默认的)
TP5隐藏入口文件(public/index.php),phpstudy环境中apache服务器下
但是在TP5根目录中是没有index.php,这个文件在public目录下,当我们访问了这个站点时,遇到.htaccess文件时,会先引用其中的配置(这个文件是apache的配置文件,在public目录中默认有一个)。而我们在.htaccess文件中所作的配置就是根据规则进行路由重定向,具体代码有中文注释。
下面这句代码的意思就是将你对于这个站点的所有路径访问转接到public/index.php中

  RewriteRule ^(.*)$ public/index.php [QSA,PT,L]
  # 参数解释
  # ^(.*)$: 匹配所有的路口映射
  # QSA: (Query String Appending)表示保留参数入get传值?xxx==xx;
  # PT: 把这个URL交给Apache处理;
  # L: 作为最后一条,遇到这条将不再匹配这条之后的规则

相关标签: php tp5