# 默认路由规则
SD提供了一个默认路由NormalRoute,现在简单说下默认的URL规则。
## 简单访问
举例说明:
```
http://localhost:8081/TestController/test
```
第一步路由器将解析Url分离出TestController/test
第二步分离出TestController与test
第三步寻找TestController,大小写敏感,首先在app/Controllers目录下寻找TestController,找不到则Server/Controllers目录下寻找,如果还找不到则重定向到404。
>大小写敏感,Server目录是框架目录
第四步查看8081端口有没有设置前缀,将前缀与test拼接作为方法名,比如http_test,在控制器中寻找这个方法名,找到则执行,没有找到会执行控制器的defaultMethod方法。
## 多级访问
举例说明:
```
http://localhost:8081/Action/TestController/test
```
第一步路由器将解析Url分离出Action/TestController/test
第二步分离出Action/TestController与test
第三步寻找TestController,大小写敏感,首先在app/Controllers/Action目录下寻找TestController,找不到则Server/Controllers/Action目录下寻找,如果还找不到则重定向到404。
第四步查看8081端口有没有设置前缀,将前缀与test拼接作为方法名,比如http_test,在控制器中寻找这个方法名,找到则执行,没有找到会执行控制器的defaultMethod方法。
>可以更多分层url最后一个字段作为方法名
## 默认方法
举例说明:
```
http://localhost:8081/TestController
```
默认方法只支持单级访问,这里会寻找TestController控制器直接执行defaultMethod方法。
## 静态文件
举例说明:
```
http://localhost:8081/Index.html
```
寻找静态文件的逻辑是写在NormalHttpMiddleware中间件中,如果ports配置中去除这个中间件将不支持寻找静态文件。
判断逻辑如下:
1.看看是不是“/“,如果是则按照business配置中寻找主页
2.寻找后缀名,如果有则认为是静态文件
3.根据目录寻找文件,如果有将按照fileHeader配置中定义的头输出,如果没有则重定向到404
>http://localhost:8081 会通过business配置寻找主页
- SD3.X简介
- 捐赠SD项目
- VIP服务
- 基础篇
- 搭建环境
- 使用Composer安装/更新SD框架
- 启动命令
- 开发注意事项
- 框架配置
- 配置文件夹
- server.php
- ports.php
- business.php
- mysql.php
- redis.php
- timerTask.php
- log.php
- consul.php
- catCache.php
- client.php
- 自定义配置
- 框架入口
- MVC架构
- 加载器-Loader
- 控制器-Controller
- 模型-Model
- 视图-View
- 同步任务-Task
- 封装器
- Swoole编程指南-EOF协议
- Swoole编程指南-固定包头协议
- 封装器-Pack
- 路由器
- TCP相关
- 绑定UID
- Send系列
- Sub/Pub
- 获取服务器信息
- Http相关
- HttpInput
- HttpOutput
- 默认路由规则
- WebSocket相关
- 使用SSL
- 公共函数
- 进阶篇
- 内核优化
- 封装器路由器原理剖析
- 对象池
- 上下文-Context
- 中间件
- 进程管理
- 创建自定义进程
- 进程间RPC
- 自定义进程如何使用连接池
- 异步连接池
- Redis
- Mysql
- Mqtt
- HttpClient
- Client
- AMQP
- RPC
- 日志工具-GrayLog
- 微服务-Consul
- Consul基础
- 搭建Consul服务器
- SD中Consul配置
- 微服务
- 选举-Leader
- Consul动态配置定时任务
- 熔断与降级
- 集群-Cluster
- 高速缓存-CatCache
- 万物-Actor
- Actor原型
- Actor的创建
- Actor间的通讯
- 消息派发-EventDispatcher
- 延迟队列-TimerCallBack
- 协程
- 订阅与发布
- MQTT简易服务器
- AMQP异步任务调度
- 自定义命令-Console
- 调试工具Channel
- 特别注意事项
- 日常问题总结
- 实践案例
- 物联网自定义协议
- Actor在游戏的应用
- Mongodb以及一些同步扩展的使用
- 自定义进程使用MQTT客户端
- 开发者工具
- SDHelper