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

参考文章

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

效果图

未隐藏入口文件时:
在这里插入图片描述
隐藏入口文件后:
在这里插入图片描述

具体步骤

在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服务器下_第1张图片
在设置了站点后,apache默认访问你设置的站点目录下的index.php或是index.html文件(这些配置是默认的)
TP5隐藏入口文件(public/index.php),phpstudy环境中apache服务器下_第2张图片
但是在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)