## 路由1分鐘極速入門
>[info] ###**提到路由,您首先想到的是什么呢?對,路由器**
* * * * *
### 一、 路由和路由器工作原理是什么?
答:[百度]所謂“路由”,是指把數據從一個地方傳送到另一個地方的行為和動作,而路由器,正是執行這種行為動作的機器,它的英文名稱為Router,是一種連接多個網絡或網段的網絡設備,它能將不同網絡或網段之間的數據信息進行“翻譯”,以使它們能夠相互“讀懂”對方的數據,從而構成一個更大的網絡。
>[info] 說了一大堆,總結起來就一句話:路由就是網絡數據傳輸的最佳路徑!請看下圖:

* * * * *
### 二、ThinkPHP5的路由是什么?
>[info] ThinkPHP5的路由過程,就是從入口文件開始,找到對應方法的過程。

### URL: http://tp5.com/index.php/index/user/add/101/peter
* * * * *
### 三、傳統URL地址是如何進行路由的?
>[info] 基本語法:http://域名/入口文件?m=模塊名&c=控制器名&a=方法名&鍵1=值1&鍵2=值2
* 例如:`http://tp5.com/index.php?m=index&c=user&a=add&id=101`
* 圖示如下:

* * * * *
### 四、ThinkPHP5的普通路由模式是什么?
>[success] ####**ThinkPHP5已經廢棄傳統URL模式,全部采用PATH_INFO模式。**
* 問題一:為什么我們要用PATH_INFO模式的URL地址呢?
> 我們將上面的傳統URL地址用PATH_INFO改寫,一對比就全明白了~~
| 序號 | URL | 說明 |
| :---: | --- | --- |
| 1 | http://tp5.com/index.php?m=index&c=user&a=add&id=101 | 傳統URL模式地址 |
| 2 | http://tp5.com/index.php/index/user/add/101 | PATH_INFO模式地址 |
>[info] 看出區別了嗎?PATH_INFO模式地址,不僅僅縮短了URL,最重要的是看上去與靜態網頁地址幾乎完全一樣,這樣就達到了欺騙搜索引擎,提高網頁收錄效果,利于網站優化與推廣!
* 你可能會說:不對呀,靜態網頁地址我見過,通常是以html結尾。不要著急,等學到模板技術時就會明白,PATH_INFO地址后綴是可以自定義的,任何有效字符串都可以做后綴,當然也包括html,只要你喜歡,后綴寫成:`china`都可以。
* * * * *
### 五、讓我們一起完成一個簡單的小案例吧~~
1. 我們先創建一個demo方法,很簡單,就是輸出字符串:`歡迎學習ThinkPHP5開發技術~~`
>[info] 為了簡化流程,我們就直接把方法寫到Index控制器中啦~~
* 控制器:Index.php 代碼非常簡單
> Index控制器位置:/application/index/Inddex.php
~~~
<?php
namespace app\index\controller;
class Index
{
//創建demo方法,僅輸出一個字符串
public function demo()
{
return '歡迎學習ThinkPHP5開發技術~~';
}
}
~~~
* 訪問Index控制器中的demo方法,我們有二種方式:
> 假設您已經配置好了本地域名tp5.com,不要再用localhost了,你懂的
| 序號 | 訪問方式 | URL地址 |
| :---: | :---: | --- |
| 1 | 傳統方式 | http://tp5.com/index.php?m=index&c=index&a=demo |
| 2 | PATH_INFO | http://tp5.com/index.php/index/index/demo |
####現在,我們訪問剛才創建的demo方法:
~~~
http://tp5.com/index.php/index/index/demo
~~~
* 打開瀏覽器,在地址欄輸入上面的的地址:

* * * * *
>[success] ### 我們可以用簡化PATH_INFO地址來訪問demo方法
* 盡管用PATH_INFO方式可以訪問我們的demo方法,但懶惰的程序員怎能忍受這又臭又長的URL地址呢?
* 我們現在想用:**<span style="font-size:20px;color:red;">`tp5.com/demo`</span>** 就能直接訪問到demo方法,可以做到嗎?
>[info] ###當然可以,借助路由功能,就可以做到~~
#### 我們只需要做以下二步:
第一步: 開啟路由
> 打開應用配置文件:/application/config.php
在代碼92行處,將配置項值從false 修改為:true,開啟路由功能
~~~
// 是否開啟路由
'url_route_on' => true,
~~~
第二步:注冊路由
> 打開路由配置文件:/application/route.php
[如不存在,請手工創建]
* /application/route.php 文件內容如下:
~~~
<?php
use think\Route; //導入Route類
Route::rule('demo/','index/index/demo/'); //創建路由規則
~~~
>[info] 可以將`demo/` 理解為` index/index/demo/`的簡寫或等量替換

### 路由規則創建完成,下面讓我們測試一下吧~~
* * * * *
* 在瀏覽器地址欄輸入:`tp5.com/demo/`

> 細心的你或許已發現:原來訪問地址:`http://tp5.com/index.php/index/index/demo`中的`index.php`怎么沒有了?其實是自動隱藏了,這在后面會講到。
* * * * *
### 六、總結:
* 現在我們可以回答:<span style="color:#f60;font-size:20px;"> 為什么要使用路由?</span>
>[info] 答案很簡單:就是要讓我們的URL訪問地址<span style="color:#f60;font-size:20px;"> 更簡短、更規范、更安全~~</span>