隨著互聯(lián)網技術的不斷發(fā)展,網站的搭建和維護越來越方便和簡單化,現(xiàn)在很多人選擇使用php框架去構建自己的網站。其中thinkphp作為一款php開發(fā)框架,已經成為了眾多php開發(fā)者的首選。在thinkphp5.0版本中,設置偽靜態(tài)是很基礎卻又常見的一項工作,本篇文章將為讀者介紹thinkphp5.0如何設置偽靜態(tài)。
一、偽靜態(tài)的概念
偽靜態(tài)是指將帶參數(shù)的URL轉化為對搜索引擎更友好的形式,在不改變頁面動態(tài)生成的情況下靜態(tài)展示,實現(xiàn)動態(tài)頁面的靜態(tài)訪問。
舉個例子,比如一個傳統(tǒng)的動態(tài)URL鏈接為:http://www.example.com/index.php?cat_id=1 ,將其偽裝成/static/1.html。這個時候,當訪問http://www.example.com/static/1.html時,頁面效果與訪問http://www.example.com/index.php?cat_id=1是一致的,但是前者更友好一些。
ThinkPHP5.0框架本身就支持URL偽靜態(tài),可以更好地保護站點安全,同時也有利于提高自然搜索的排名。
立即學習“PHP免費學習筆記(深入)”;
二、偽靜態(tài)的設置
在ThinkPHP5.0框架中,實現(xiàn)URL偽靜態(tài)需要進行如下兩個步驟:
- 修改配置文件
打開項目根目錄下的config目錄,找到對應的文件:
app.php 文件:修改‘url_html_suffix‘值,將其設置成我們想要的后綴名,例如.html。
路由配置文件 route.php: 修改 ‘route_config_file’ => ‘route’,
'url_route_on' => true, //開啟路由 'url_route_must' => true, //所有路由必須在路由表中定義
其中url_route_must設置為true,這里設置是為了保證所有的路由都必須在路由表中定義,如果沒有定義的話就會拋出404錯誤。
還需要在route.php文件中添加路由規(guī)則:
// 配置路由規(guī)則
use thinkRoute;
Route::rule(‘detail-
在上面的代碼片段中,我們定義了一個路由規(guī)則,將http://www.example.com/index/article/detail/id/1 轉換為 http://www.example.com/detail-1.php。其中,detail-
- 配置Web服務器
如果想讓設置的偽靜態(tài)路由生效,還需要在Web服務器上進行相應的配置。以 Apache 服務器為例,需要在 Apache 的配置文件 .htaccess 中添加代碼:
開啟 RewriteEngine
RewriteEngine On
定義偽靜態(tài)路由規(guī)則
RewriteRule ^detail-(d+)-(.*)$ /index/article/detail/id/$1 [NC,L]
上述代碼實現(xiàn)了如果URL鏈接匹配了/detail-
三、測試偽靜態(tài)功能
進行完偽靜態(tài)配置之后,需要對設置的偽靜態(tài)規(guī)則進行測試,只有在測試沒問題以后才能部署到線上環(huán)境中。在測試偽靜態(tài)時,需要在URL中加上偽靜態(tài)后綴,例如:http://www.example.com/detail-1.html,如果該鏈接能正常訪問,并且是指向動態(tài)頁面的,那么說明偽靜態(tài)設置成功了。
四、總結
ThinkPHP5.0框架自帶偽靜態(tài)功能,借助于Web服務器的重寫機制,配合上框架本身內置的路由系統(tǒng)和生成URL的函數(shù),能夠實現(xiàn)快速的偽靜態(tài)設置。但在實際應用中,還需要考慮到SEO友好性、URL規(guī)范等眾多方面的限制,需要靈活運用偽靜態(tài)方案。