thinkphp如何去掉index.php

时间:2021-08-22 19:59:45

环境 : win10,apache,phpstudy,thinkPHP3.2



第一步,确认ThinkPHP目录下面的Conf文件夹下面的convention.php里面的

'URL_MODEL'  =>  2



第二步, 确认项目根目录下面的有.htaccess文件,并且里面内容是


<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>


这里需要补充说明的是thinkPHP自带的这个文件里面倒数第二行没有"?"这个字符



第三步,确认httpd.conf文件里面的AllowOverride选项都为All,确认LoadModule rewrite_module modules/mod_rewrite.so是处于打开状态
第四步,配置虚拟主机:1.在httpd.conf文件夹中可以看到Include conf/vhosts.conf此项是默认打开状态,但是这个文件里面是空的,那么就让他空着好了,下面需要复制一行,添加自己的配置文件,很简单,如增加一行Include conf/myconfig/*.conf,这个意思是加载conf文件夹下面的myconfig文件夹下面的所有以.conf结尾的问价,这里需要特别说明的是,如果这里面如果没有以.conf结尾的文件后者有不是.conf结果的文件,则在apache重启的时候会报错.我在myconfig文件夹下面建立了一个文件叫testtp.conf,里面的内容如下:

<VirtualHost *:80>
    ServerName testtp
    DocumentRoot "D:/WWW/TestTp"
    ErrorLog "logs/testtp.local-error.log"
    CustomLog "logs/testtp.local-access.log" common
    <Directory "D:/WWWW/TestTp">
        Options +Indexes +FollowSymLinks +ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>


这里需要注意的是
ServerName testtp
   DocumentRoot "D:/WWW/TestTp"
<Directory "D:/WWWW/TestTp">
第一行是配置hosts文件的时候,虚拟主机的名字要写对,二三行是说对应了项目的目录



第四步,在hosts文件中添加这一行

127.0.0.1       testtp



第五步,重启apache



原来的访问地址:
http://localhost/testtp/index.php/Home/Index/index
现在的访问地址:
http://testtp/Home/Index/index(注意,访问的时候要加上http://)