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环境下的修改方法。