本文主要和大家分享thinkphp去掉index.php的方法執行個體,希望能協助到大家。
環境 : 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>
這裡需要注意的是
ServerNametesttp 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://)