使用框架的默认路由来访问的时候,会遇到一些困扰,这部分无法查看源代码,只能通过猜测来分析。

如果项目有多个模块,显然使用yaf的默认的静态路由是无法满足需求的。

yaf默认的配置是着这样的:

application.baseUri=”/”
;默认的脚本后缀名,一般可以不写
application.ext=php ;视图的后缀名,可以为html,随意。
application.view.ext=phtml
application.dispatcher.defaultModule=Index
application.dispatcher.defaultController=Index
application.dispatcher.defaultAction=index
application.modules=Index

依次说明一下作用

application.baseUri=”/” 这个是说明我们的domain后面就是要解析的内容,如果我们的application是通过文件夹a访问的,baseUri就是/a 所以这个baseuri的目的就是表示出哪些部分是需要路由来处理的,哪些是真是的路径。

默认的module是 Index,

application.dispatcher.defaultModule=Index

这一句经过测试发现修改是无效的,也就是说无法通过配置来修改默认的module,

application.dispatcher.defaultController=Index

application.dispatcher.defaultAction=index

即默认的 controller和默认的action相应的都是可以指派的。

再有就是为路由添加模块,在新创建模块的时候要将添加上的模块通知给路由,这样路由才能够在request请求新模块时该如何做

application.modules=Index用的是这一句,如果想添加新模块 Myoo,则要在Index后面写上,Myoo(一定要注意顺序,一定是先Index,然后才是其他的模块)。

变成 application.modules=Index,Myoo

然后就在application目录下建立这样一个目录:

├── modules
│ │ └── Myoo
│ │ │ ├── controllers
│ │ │ └── views
│ │ │ │ ├── ctrl
│ │ │ │ └── index
注意:模块名字一定要和配置文件里面添加的模块名字一样,包括大小写!!

原来用的框架的路由基本上都是默认模块可以改而默认的controller和action不能改都是写死的index

这种情况的好处是每个模块都有指定的controller和action,如果要访问 myoo模块的 index控制器indexaction的话,只需要写一个module名myoo就可以了。

现在yaf则不可以。默认的mudule是写死的,而默认的controller和action是给默认的module用的,现在想访问  myoo/index/index/的话,只能写全,而不能只写myoo,只写myoo没有controller和action,路由还是不知道最终的目的地是哪里,就不会再从module中找了,myoo就被解析成默认的模块的一个controller了,然后抛出一个404错误,

这个都没有什么问题,够用了。

但是我觉得默认模块不可更改这是不是一个bug,因为如果不能改为什么要做上这个配置项呢。

yaf路由配置规则的更多相关文章

  1. SpringCloud Zuul 路由映射规则配置

    阅读目录 前言 快速入门 路由详解 Cookie与头信息 本地跳转 Hystrix和Ribbon支持 过滤器解释 动态加载 后记 回到目录 前言 本文起笔于2018-06-26周二,接了一个这周要完成 ...

  2. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  3. MVC路由配置

    目录 URL Routing 的定义方式 示例准备 给片段变量定义默认值 定义静态片段 自定义片段变量 自定义片段变量的定义和取值 将自定义片段变量作为Action方法的参数 指定自定义片段变量为可选 ...

  4. angular2地址栏路由配置

    一步一步route过去可以,地址栏直接写url怎么就找不到了呢? 这关乎于Nodejs的express路由规则(http://hm4123660.iteye.com/blog/2195035) exp ...

  5. 理解MVC路由配置(转)

    在上一篇文章中,我简短的谈了一下MVC的底层运行机制,如果对MVC还不是很了解的朋友,可以作为入门的参照.接下来,我开始介绍关于URL路由的相关知识.URL路由不是MVC独有的,相反它是独立于MVC而 ...

  6. Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交

    今天博客中就来聊一下Perfect框架的静态文件的添加与访问,路由的配置以及表单的提交.虽然官网上有聊静态文件的访问的部分,但是在使用Perfect框架来访问静态文件时还是有些点需要注意的,这些关键点 ...

  7. php框架Yaf路由重写

    php框架Yaf路由重写 通常为了友好的URL格式,会进行站点URL的重写,可以在webserver(Nginx)的配置中进行rewrite,也可在在程序端进行 以下使用Yaf框架进行URL的重写,进 ...

  8. 原创:路由配置实践 两个局域网主机的互连 VM linux

    又开始齐天大圣讲课的时间了 我相信网络是每个运维人员和开发人员必不可少要接触的   今天我们要讲的是在VM虚拟机中 我们三台虚拟机划分两个局域网 实现不同局域网的互联 也就是下面图中的AC通过B主机的 ...

  9. IP路由及静态路由配置

    IP路由及静态路由配置 qianghaohao(CodingNutter) 链接来源:http://www.cnblogs.com/codingnutter/p/5654271.html 一.IP路由 ...

随机推荐

  1. 模块讲解----XML模块

    XML实现不同语言或者程序之间进行数据交换的协议XML文件格式如下: 1.浏览器返回的字符串格式类型有: a.HTML b.Json c.XML 2.XML格式如下: <data> #表示 ...

  2. 基于Policy Gradient实现CartPole

    http://chenrudan.github.io/blog/2016/09/04/cartpole.html 首页 分类 关于 归档 标签 基于Policy Gradient实现CartPole ...

  3. Redis设置Auth认证保护

    redis有一个认证方式来保护数据的安全.设置此认证有两种方式,一种是通过配置文件,一个是在redis客户端命令直接设定 一.配置文件(需要重启redis生效) 找到参数 requirepass, 这 ...

  4. 高级Bash脚本编程(二)

    高级Bash脚本编程(二) 退出 退出状态码 退出:exit 被用来结束一个脚本,它也返回一个值,并且这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理. 每个命令都会返回一个退出状态码,成 ...

  5. 20145326蔡馨熠 实验三 "敏捷开发与XP实践"

    20145326蔡馨熠 实验三 "敏捷开发与XP实践" 程序设计过程 一.实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 1.git上传代码 首先我通 ...

  6. bzoj 4443: [Scoi2015]小凸玩矩阵

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 149  Solved: 81[Submit][Status][Discuss] Description ...

  7. Execution Order for the ApiController

    Execution Order for the ApiController Assuming the request goes into the ApiController scope, the op ...

  8. 二进制文件和ASCII文件有何区别

    二进制文件和ASCII文件(即文本文件)的区别,对于和计算机亲近时间尚短的同学是个难题. 1.一个例子:两种100000 有程序: #include<iostream> using nam ...

  9. 请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?

    请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?

  10. mysql循环查询树状数据

    完整function )) ) CHARSET utf8 BEGIN ) ; ) ; SET str = ''; SET cid =cast(rootId as CHAR); WHILE cid is ...