1.路由快速入門
1.1 概念
是指把數據從一個地方傳送到另一個地方的行為和動作,而路由器,正是執行這種行為動作的機器。它的英文名稱為Router,是一種連接多個網絡或者網段的網絡設備,它能將不同網絡或者網段之間的數據信息進行“翻譯”,已使它們能夠相互“讀懂”對方的數據,從而構成一個更大的網絡。
總結起來就一句話:路由就是網絡數據傳輸的最佳路徑!( 廣義上解釋)請看下圖:
1.2 項目當中的路由
一個有效的Url請求的執行流程
路由:路由就像一個總調度,把用戶不同的請求,分發到對應的URL地址上(以項目中的方式來講)
ThinkPHP5的路由過程,就是從入口文件開始,找到對應方法的過程。
URL:?http://tp5.com/index.php/index/user/add/101/peter
1.3 傳統URL地址以及TP5普通路由
傳統URL地址的基本語法:http://域名/入口文件?m=模塊名&c=控制器名&a=方法名&鍵1=值1&鍵2=值2
例如:http://tp3.com/index.php?m=index&c=user&a=add&id=101
(圖為tp3的路由地址解析)
ThinkPHP5已經廢棄傳統URL模式,全部采用PATH_INFO模式。
例子:http://tp5.com/index.php/index/user/add/101 PATH_INFO模式地址
PATH_INFO模式的特點:PATH_INFO模式地址,不僅僅縮短了URL,最重要的是看上去與靜態網頁地址幾乎完全一樣,這樣就達到了欺騙搜索引擎,提高網頁收錄效果,利于網站優化與推廣!
1.4 注冊路由
1.4.1 路由規則寫在哪?
(1).路由規則寫在與應用配置同級的route.php文件中;
(2).路由規則主要使用路由類:Route注冊
1.4.2 注冊路由的步驟
1.4.2.1 為啥要注冊路由
原因:若不開啟路由,即URL很長,并且別人很容易就知道你所指向的模塊,安全風險高,易被路由注入①,為了防止這種情況發生。
注:①請自行百度,搜索路由注入。
1.4.2.2 開啟路由
(1)Thinkphp5.0版本:
需要打開thinkphp/convention.php 查看url_route_on是否開啟路由,一般是開啟的
(2)Thinkphp5.1的版本:
不用查看,因為直接支持路由配置,所以在thinkphp/convention.php沒有這個url_route_on這個配置,所以這步在5.1中是可以不用管。
1.4.2.3 注冊路由
5.1版本默認就在application 同級下就有route的配置文件 ,之前的版本需要重新的定義route.php這文件
路由訪問效果
若按照現在之前的方式已經不能使用,已經被注冊的路由,也就不能使用PATHINFO模式訪問
1.5 路由的作用
1.根據事先定義的路由規則,檢驗URL請求,確定執行或者拒絕
2.路由規則可以自定義,隱藏了原URL地址,使訪問更安全,地址更優雅,利于seo優化??