在 Zend 框架中添加基于子域的路由 [英] Adding sub domain based routes in Zend framework

查看:33
本文介绍了在 Zend 框架中添加基于子域的路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Zend 框架的新手,我正在使用 .ini 文件在我的应用程序中添加路由.

I am newbie to Zend framework, I am using .ini file to add routes in my application.

我有 2 条不同模块的路由

I have 2 routes for different modules which

resources.router.routes.news_view.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.news_view.route = "([0-9-]+)/([a-zA-Z0-9-]+).html"
resources.router.routes.news_view.defaults.module = "news"
resources.router.routes.news_view.defaults.controller = "index"
resources.router.routes.news_view.defaults.action = "view"
resources.router.routes.news_view.map.1 = "date"
resources.router.routes.news_view.map.2 = "title"

resources.router.routes.edu_view.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.edu_view.route = "([0-9-]+)/([a-zA-Z0-9-]+).html"
resources.router.routes.edu_view.defaults.module = "education"
resources.router.routes.edu_view.defaults.controller = "index"
resources.router.routes.edu_view.defaults.action = "article"
resources.router.routes.edu_view.map.1 = "date"
resources.router.routes.edu_view.map.2 = "title"

网址格式就像

http://news.mysite.com/27-08-09/sample.html

http://education.mysite.com/27-08-09/sample.html

我面临的问题是为两个模块分配了最后定义的路由.

the problem I face is the last defined route is assigned for both the modules.

任何人都可以为此提出解决方案.

can anyone suggest a solution for this.

推荐答案

在网上浏览了很多次之后,我想出了这个解决方案来解决我的问题

Hi after much browsing in the web I came up with this solution for my problem

resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.www.route = ":module.findchennai.com"
resources.router.routes.www.defaults.module = "www"
resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route"
resources.router.routes.www.chains.index.route = ":controller/:action/*"
resources.router.routes.www.chains.index.defaults.controller = "index"
resources.router.routes.www.chains.index.defaults.action = "index"

以上代码将模块映射到子域

The above code maps the module with sub domain

resources.router.routes.news.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.news.route = "news.findchennai.com"
resources.router.routes.news.defaults.module = "news"

resources.router.routes.edu.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.edu.route = "education.findchennai.com"
resources.router.routes.edu.defaults.module = "education"

resources.router.routes.edu.chains.list.type = "Zend_Controller_Router_Route"
resources.router.routes.edu.chains.list.route = ":categ/:page"
resources.router.routes.edu.chains.list.defaults.controller = "index"
resources.router.routes.edu.chains.list.defaults.action = "category"
resources.router.routes.edu.chains.list.defaults.page = 1

resources.router.routes.news.chains.list.type = "Zend_Controller_Router_Route"
resources.router.routes.news.chains.list.route = ":categ/:page"
resources.router.routes.news.chains.list.defaults.controller = "index"
resources.router.routes.news.chains.list.defaults.action = "category"
resources.router.routes.news.chains.list.defaults.page = 1

这解决了我面临的问题,现在可以正确映射到以下网址

This solves the problem I faced and now could map correctly to the following urls

http://news.mysite.com/27-08-09/sample.html
http://education.mysite.com/27-08-09/sample.html

如果有人知道如何进一步优化上述代码,请告诉我.

Still if some one knows how to optimise the above code further, Please let me know.

这篇关于在 Zend 框架中添加基于子域的路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆