鍍金池/ 問(wèn)答/PHP  Linux/ 為啥 thinkphp(3.2.3) URL跳轉(zhuǎn)后多了index.php?

為啥 thinkphp(3.2.3) URL跳轉(zhuǎn)后多了index.php?

Apache服務(wù)器

config文件配置是這樣的

'URL_HTML_SUFFIX'=>'html',
'URL_CASE_INSENSITIVE' => true,
'URL_MODEL' => 2,
'URL_ROUTER_ON' =>true,

.htaccess文件配置是這樣的

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  
  RewriteCond %{REQUEST_METHOD} ^TRACE
  RewriteRule .* - [F]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
  
  RewriteCond %{HTTP_HOST} ^xxx.cn [NC]
  RewriteRule ^(.*)$ http://www.xxx.cn/$1 [L,R=301]
</IfModule>



問(wèn)題是這樣的:

目前通過(guò)xxx.cn可以正常跳轉(zhuǎn)到www.xxx.cn,其他非首頁(yè)鏈接跳轉(zhuǎn)后會(huì)增加index.php,已測(cè)試沒(méi)有這個(gè)index.php也是可以正常訪問(wèn)的,做了隱藏的,但是
比如xxx.cn/home/test/test/這樣的非首頁(yè)鏈接,跳轉(zhuǎn)就會(huì)變成www.xxx.cn/index.php/home/test/test/
為什么會(huì)多了index.php?如何去掉這個(gè)index.php?

回答
編輯回答
朽鹿

你是不是用到了tp的U方法生成鏈接地址啊?如果是的話,原因就是:index.php是tp的入口文件,他的作用是加載tp運(yùn)行需要的所有資源,如果沒(méi)有index.php,tp就無(wú)法正常處理請(qǐng)求!當(dāng)你配置了apache重寫(xiě)規(guī)則,但是tp并不知道你配置了這個(gè)規(guī)則,所以必然的生成帶index.php的訪問(wèn)url,便于下次請(qǐng)求的時(shí)候能正常處理,現(xiàn)在的這種情況,要不然你就自己手動(dòng)添加訪問(wèn)的地址:例如U("User/Login")替換到/User/Login

2017年6月21日 11:39