【问题标题】:Zend Router QuestionZend 路由器问题
【发布时间】:2011-06-03 23:46:16
【问题描述】:

我使用模块布局来构建我的控制器:

:模块/:控制器/:动作

我想添加一个新的自定义路由,以便下面的 url 可以工作。

domain.com/用户名

其中用户名是网站上任何注册用户的用户名。

谁能指出我正确的方向?

谢谢

【问题讨论】:

    标签: zend-framework zend-controller-router


    【解决方案1】:

    有关如何在 ZF 中执行此操作的详细说明,请参阅此博客文章:

    http://tfountain.co.uk/blog/2010/9/9/vanity-urls-zend-framework

    【讨论】:

    • 谢谢。这就是我一直在寻找的。​​span>
    【解决方案2】:

    不确定您是否可以制作像domain.com/username 这样的东西。相反,您可以使用domain.com/u/usernamedomain.com/user/username。例如,要在 application.ini 中创建第二条路由,您可以输入类似于以下内容的内容:

    resources.router.routes.user.route = "/user/:user"
    resources.router.routes.user.type = "Zend_Controller_Router_Route" 
    resources.router.routes.user.defaults.module = default
    resources.router.routes.user.defaults.controller = user
    resources.router.routes.user.defaults.action = user
    resources.router.routes.user.defaults.user = 
    resources.router.routes.user.reqs.user = "\s+" 
    

    【讨论】:

    • 并不是说你不能做那个 /username URL,但是你的建议很好。使用没有任何关键字的通用 url 是不好的做法,因为您最终会执行一些联结操作,这将有更多逻辑来确定 url 是用于用户名、页面还是其他任何内容。在您的网址中包含关键字总是更好。
    • >>在您的 URL 中包含关键字总是更好 从开发人员的角度来看确实更好。然而,从用户的角度来看,为他们的页面提供一个友好的 URL 会更好。 @marcin我知道如何处理标准案例。我的问题专门针对非标准问题。
    【解决方案3】:

    http://framework.zend.com/manual/en/zend.controller.router.html 很好地涵盖了您可以添加路由的所有不同方式。请记住,一旦您添加了自定义路由,默认路由将不再起作用,除非您明确定义它(以及在 url 视图助手等中)。

    【讨论】:

    • 感谢您的努力。但是没有必要引用文档。我已经读过了。我的问题是关于路线处理中的一个不寻常案例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多