1

几个月前我问了一个类似的问题,关于如何以某种app.ini格式编写链接规则。这个问题的答案非常好!然而,现在我已经升级到 Zend Framework 1.9.5 的最新版本(我需要升级以解决另一个问题),现在我的子域不再工作了!

澄清一下,如果我访问subdomain.domain.com,它不承认我的规则。但是,如果我访问subdomain.domain.com/somepage/它,它识别我的路由规则。

这是我的代码:

;; the following is apparently being ignored, and does not work
routes.manager.type = "Zend_Controller_Router_Route_Hostname"
routes.manager.route = "manager.sitename.com"
routes.manager.defaults.module = "manager"

;; this is not being ignored and works!
routes.manager.chains.settings.type = "Zend_Controller_Router_Route_Static"
routes.manager.chains.settings.route = "/settings"
routes.manager.chains.settings.defaults.controller = "manager"
routes.manager.chains.settings.defaults.action  = "settings"

因此,例如,如果我转到manager.sitename.com,它只会重定向到我的默认索引和控制器(不访问模块,$this->getRequest()->getModuleName()为空白)。但是,如果我去manager.sitename.com/settings,页面就会出现!此app.ini配置在 ZF 1.7.8 中运行良好,但现在自从我升级到 1.9.5 后,它不再运行。

我也尝试将routes.manager.defaults.controller = "manager"and添加routes.manager.defaults.action = 'index"到我的配置中,但这不起作用。

互联网上没有太多链接和app.ini处理 Zend Framework 的内容。对此问题的任何帮助将不胜感激。

4

1 回答 1

1

我找到了解决方案。这个问题首先是由于 Zend Framework 路由规则中的一个错误,导致空的静态路由(空白字符串)永远不会匹配。这就是为什么sub.example.com/hello.php会起作用,但不会sub.example.com

有一个补丁,它工作得很好。

请转到此处阅读有关此问题的更多信息并获取补丁。希望他们很快将这个补丁集成到主干中。

于 2010-03-13T23:33:22.637 回答