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

如果项目有多个模块,显然使用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. PAT 1094 The Largest Generation[bfs][一般]

    1094 The Largest Generation(25 分) A family hierarchy is usually presented by a pedigree tree where a ...

  2. YTD易出现断层问题,请注意!

    declare @table table( company_id int ,--公司编号 quarter_num ),--季度 disti ),--分销商 num int --数量 ) insert ...

  3. 20155239 2016-2017-2 《Java程序设计》第7周学习总结

    教材学习内容总结 1.了解Lambda语言 "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的 ...

  4. SQLServer cast()函数

    语法: CAST (expression AS data_type) 参数说明: expression:任何有效的SQLServer表达式. AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS ...

  5. 打开 EXCEL时出现RUN-TIME ERROR“91”,怎么解决?

    方法一: 开始—程序—microsoft—打开“windows office 2007 简易设置”,把“使用 office 03样式经典菜单”前的“√”去掉就OK了 方法二: 1. 打开注册表编辑器. ...

  6. POJ 3468 A Simple Problem with Integers(线段树:区间更新)

    http://poj.org/problem?id=3468 题意: 给出一串数,每次在一个区间内增加c,查询[a,b]时输出a.b之间的总和. 思路: 总结一下懒惰标记的用法吧. 比如要对一个区间范 ...

  7. BZOJ 2806 【CTSC2012】 Cheat

    题目链接:Cheat 话说这道题很久以前某人就给我们考过,直到现在,我终于把这个坑填上了…… 这道题要我们把一个串\(S\)划分成若干块,每块长度不小于\(L_0\),使得能够在文章库中完全匹配的块的 ...

  8. python 作用域,命名空间

    def scope_test(): def do_local(): spam = "local spam" def do_nonlocal(): nonlocal spam spa ...

  9. 微信小程序登录,获取code,获取openid,获取session_key

    微信小程序登录 wx.login(Object object) 调用接口获取登录凭证(code).通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session ...

  10. 雷林鹏分享:Ruby Socket 编程

    Ruby Socket 编程 Ruby提供了两个级别访问网络的服务,在底层你可以访问操作系统,它可以让你实现客户端和服务器为面向连接和无连接协议的基本套接字支持. Ruby 统一支持应用程的网络协议, ...