# 路由访问
[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