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

我有2条用于不同模块的路线

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"

URL模式就像

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

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

我面对的问题是两个模块的最后一个定义的路由是分配的。

任何人都可以建议解决方案。

有帮助吗?

解决方案

嗨,在网络上进行了大量浏览之后,我想出了这个解决方案以解决我的问题

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"

上述代码用子域映射模块

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

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

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

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

其他提示

两个子域是否呼叫相同的index.php?

如果他们不仅基于适当的子域设置路由,而不是在两个子域中设置两个路由。

如果他们确实从$ _server ['http_host']变量读取,并根据子域设置正确的路由,或在.htaccess文件中设置环境变量,以便您可以告诉您所在的子域。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top