关于tp5隐藏index.php的解决方法

Apache环境下,ThinkPHP5配置好以后,最初的访问方式可能是http://localhost/index.php/hello,其中hello是我们自己设置好的路由。

如果我们想把中间的index.php去掉,直接http://localhost//hello这样访问,可能会访问不了。那就需要配置一下。

一、首先我们要确保Apache启动加载重写模块

    在apache的配置文件httpd.conf中,查找到mod_rewrite.so,看是否加载,如果没有,就把前面的#去掉就好。

   LoadModule rewrite_module modules/mod_rewrite.so

二、设置AllowOverride

在apache的配置文件httpd.conf中,查找到Directory中的AllowOverride,把AllowOverride None改为AllowOverride All

以上配置完以后重启Apache,看是否可以访问http://localhost//hello,如果还是不可以正常访问,再进行下面的设置。

三、如果上面两步完成以后还是不可以隐藏 index.php 访问,那就再配置一下 .htaccess文件。

.htaccess文件在根目录中,tp5的话就在public文件夹中,没有的话就自己新建一个。

官方的配置如下,注意最后一句,红色显示的那一句。


  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

如果此时还是不能访问就把红色的那句,按照下面的修改方法试试。

① RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]     修改为      RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

就是index.php后面加一个?号。

② RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]     修改为  RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L] 

③RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]     修改为   RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

网上的资料说这一个是phpstudy环境下的修改方法。

 

 

 

 

 

你可能感兴趣的:(PHP,apache,php)