🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 基础使用 通过使用路由可以优化链接,系统提供了强大的路由功能,不过如果情况允许还是推荐使用服务器软件自带的地址重写如apache的rewrite。 [TOC] 虽然路由可以可以使用像thinkPHP或者laravel类似的路由注册方式,但是不推荐这样做,推荐把路由写入配置文件,路由组件会自动生成缓存,有助于提高匹配速度。 ### 配置 路由规则配置只能在全局配置里,在模块配置里写的路由规则是无效的。 #### 兼容模式 ~~~ // 默认模块 'default_module' => 'index', // 默认控制器 'default_controller' => 'index', // 默认操作方法 'default_action' => 'index', // url模式 1普通模式 2兼容模式 3 pathinfo模式 'url_pattern' => 1, // 是否rewrite 1开启0关闭 'url_rewrite' => 0, // 兼容模式变量 'url_var' => 's', // 当pathinfo不存在时是否可以使用 兼容模式下的变量 1使用 不使用 'use_var_s' => 1, /************ 当前所在区域控制 *****/ // 开启使用区域分析 1使用0不使用 'use_area' => 1, // 地区列表 'area_list' => ['zh'=>'cn', 'en'=>'en'], // 默认地区 当合法列表不存在是使用默认 'default_area' => 'en', // pathinfo前多少个字符 长度验证 'area_length' => 2, /** * 只在普通模式下有效 */ // 模块变量 'var_m' => 'm', // 控制器变量 'var_c' => 'c', // 操作变量 'var_a' => 'a', ~~~ ##### 设置路由规则 在全局配置文件route里面有一个`rules`配置是设置路由的,里面包含的`get post put delete any map group resoure domain globalPattern` 这是设置分别为: get请求路由 post请求路由 map请求路由 group分组路由 resoure资源路由 domain域名路由 globalPattern全局匹配模式 ### 标字符 默认请求下路由匹配后就停止匹配,但是该路由组件可以改变当前行为,就向apache的rewirte一样 目前实现标志服 ~~~ /** * 分析行为 如果K标识则返回true继续规则匹配 * 模拟apache rewrite 少量标志符 * R[=code](force redirect) 强制外部重定向 * F(force URL to be forbidden)禁用URL,返回403HTTP状态码。 * G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。 * K(keep matches) 继续匹配 与apache 的rewrite正好相反 * S=num(skip next rule(s)) 跳过num条规则 只用于正则路由(暂时未实现) * QSA 追加请求字符串 * A 更改pathinfo * @param [array] $b [标志符号] ['F','G','QSA','A','L','R=321'] * @return [type] [终止匹配或者继续匹配状态] */ ~~~