# 路由訪問
[TOC]
路由訪問三大模式:普通模式、混合模式、強制模式
普通模式:就是`application/config.php` 配置文件里面的 `url_route_on' => false`,就為普通模式了。普通模式訪問全部采用PATH\_INFO格式。
混合模式:Thinkphp采用的就是混合模式,`application/config.php 'url_route_on' => true` 默認就是true。混合模式開啟了路由就可以使用路由規則訪問,沒有開啟路由就使用PATH\_INFO訪問。
強制模式:強制模式就是開啟了 `application/config.php` `route_complete_match' => true`,那么必須全部采用路由模式包括了首頁
## 動態注冊
使用`\think\Route`類`rule`方法實現路由的動態注冊,基本語法如下:
```
Route::rule('路由表達式','路由地址','請求類型','路由參數(數組)','變量規則(數組)一般用于正則');
```
簡單實例:
```
// 普通動態注冊
Route::rule('dome/:str','home/text/getAll','GET',['ext' => 'html'],['str' => '\w{1,10}']);
// 路由表達式,路由的地址,訪問的方式,URL的后綴參數,變量的正則匹配
// 數組動態注冊
return [
'dome/:str' => ['home/text/getAll',['method' => 'get'],['ext' => 'html'],['str' => '\w{1,10}']],
];
// 路由表達式,路由的地址,訪問的方式,URL的后綴參數,變量的正則匹配
```
## 路由規則
路由規則就是用戶最終用來訪問的URL地址,并非原始URL地址。
基本語法如下:
```
路由標識符/:變量名/[:變量名]
Route::rule('dome/:str/[:str2]','home/text/getAll','GET',['ext' => 'html'],['str' => '\w{1,10}']);
// 當我們在方法里,參數設置了默認值,此時我們的變量就可以不用傳入直接使用方法默認的值
public function getAll($str,$str2 = '你好')
{
echo $str,$str2;
}
```
- 基礎
- 安裝PHP
- 語言基礎
- 變量
- 變量操作
- 超全局數組變量
- 變量作用域
- 變量傳值方式
- 常量
- 數據類型
- 運算符
- 流程控制
- 文件包含
- 錯誤處理
- 字符串操作
- 數組
- 函數
- 進階
- 面向對象
- 提高
- TP
- 安裝項目
- 框架基礎知識
- 命令創建模塊
- URL生命周期
- 路由操作
- Request請求類
- 參數綁定
- 依賴注入
- 模板操作
- 查詢操作
- 添加操作
- laravel
- ☆目錄結構
- CSRF攻擊
- ☆路由
- ☆控制器
- ☆請求類
- ☆視圖
- ☆模板繼承
- ☆表單驗證
- ☆DB類
- ☆模型
- ☆數據庫遷移
- 類型、修飾、索引
- ☆數據填充
- ☆數據分頁
- ☆session處理
- ☆中間件
- ☆緩存操作
- ☆文件上傳
- ☆接口操作
- ☆擴展插件
- restful
- 工作
- 工作記錄
- QQ登錄
- 新浪登錄
- 微信登錄
- sphinx搜索
- 數據庫
- MySQL
- ☆數據庫操作
- ☆數據表操作
- ☆數據的操作
- 待修改
- 優化
- 存儲引擎選擇
- 列表類型選擇
- 范式
- 慢日志查詢
- 精準時間記錄查詢
- 計劃任務 explain
- 索引
- 索與事務
- 查詢緩存
- 存儲過程
- 觸發器
- 分區
- 分表
- sphinx
- 讀寫分離
- 搜索優化
- 網站靜態化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服務器
- Linux
- 目錄結構
- 常用命令
- VIM編輯器
- 用戶與用戶組
- 權限管理
- 運行級別
- 網絡模式
- ssh
- 軟件安裝
- 計劃任務
- Ubuntu
- 編譯PHP7.3
- 編譯MySQL
- 編譯Nginx
- apache虛擬機配置
- 安裝composer
- Nginx
- Git