tp路由+偽靜態(tài)+去掉index.php+去掉Home

之前一個網(wǎng)友說能不能達到這樣的效果,www.olcms.com/news/id.html我當(dāng)時說不能,后來想了想是可以的,今天試了試,已經(jīng)實現(xiàn),把步驟整理如下:

  1. 在tp的配置文件中開啟偽靜態(tài)和路由如下
<?php
return array(
//'配置項'=>'配置值'
//url訪問模式為rewrite模式
'URL_MODEL'=>'2',
//開啟偽靜態(tài)
'URL_HTML_SUFFIX' =>'.html',
//開啟路由
'URL_ROUTER_ON' =>true,
//路由規(guī)則
'URL_ROUTE_RULES'=>array(
'news/:id' => 'Home/News/read',
),
);
?>

此處再結(jié)合我另一篇文章,修改下U函數(shù),這樣在頁面使用U生成鏈接就自動生效路由規(guī)則了
http://www.itdecent.cn/p/394b04a97af9

  1. 其實現(xiàn)在已經(jīng)實現(xiàn)偽靜態(tài)和路由了,當(dāng)前訪問 www.olcms.com/index.php/news/1.html 等于訪問 www.olcms.com/index.php/Home/News/read/id/1.html 當(dāng)然我們還少一步,沒有去掉index.php,現(xiàn)在說說apache怎么去index.php,

1)開啟Apache rewrite moudle,然后重啟apache
2)建立.htaccess文件(windows用另存為方式),內(nèi)容如下

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

nginx配置

在nginx站點配置,在Nginx低版本中,是不支持PATHINFO的,但是可以通過在Nginx.conf中配置轉(zhuǎn)發(fā)規(guī)則實現(xiàn)(針對與這點,我遇到綁定模塊出現(xiàn)的問題,遇到前臺正常后臺404的,看http://www.itdecent.cn/p/299a3ab5a7cc):

location / { // …..省略部分代碼
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=$1  last;
   break;
    }
 }

大功告成,現(xiàn)在就可以 www.olcms.com/news/1.html 等于訪問原來的www.olcms.com/index.php/Home/News/read/1.html

本文參考:http://www.thinkphp.cn/topic/7384.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容