如何在Zend中路由多个静态页面

时间:2014-09-25 11:12:20

标签: php regex zend-framework

在我的routes.ini文件中,我有这些路线,并且会有更多类似于此的方法,我如何制作一条可以全部或某些方法的路线?

 ;howitworks
routes.howitworks.route = "howitworks.html"
routes.howitworks.defaults.controller = "index"
routes.howitworks.defaults.action = "howitworks"


;howtopost
routes.howtopost.route = "howtopost.html"
routes.howtopost.defaults.controller = "index"
routes.howtopost.defaults.action = "howtopost"


;terms & conditions
routes.howtopost.route = "terms.html"
routes.howtopost.defaults.controller = "index"
routes.howtopost.defaults.action = "terms"

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的Zend Framework?

我将假设ZF1.12 - Zend Framework 1.12 - Using Zend_Config for Routes

routes.page.type = "Zend_Controller_Router_Route_Regex"
routes.page.route = "([a-z0-9]+)\.html"
routes.page.defaults.controller = "index"
routes.page.map.action = 1

我认为你所追求的是上面的内容 - 它正在对小写字母和以.html结尾的数字进行正则表达式检查(例如“howitworks.html”)。然后将Action设置为捕获的参数(在此示例中为howitworks)。

我模糊地回想起当我第一次开始玩路由时我自己尝试这个 - 我认为在路线末端使用.html会有问题吗?我最终通过引导文件进行路由。

我希望这会有所帮助:)

[编辑]

考虑从发送到动作的字符串中删除.html的问题,我记得我做不到。我所做的是将所有页面都作为一个参数将所有页面泵入一个动作,然后在控制器中调用正确的页面。

routes.page.type = "Zend_Controller_Router_Route_Regex"
routes.page.route = "([a-z0-9]+)\.html"
routes.page.defaults.controller = "index"
routes.page.defaults.action = "page"
routes.page.map.url = 1

pageAction函数中,我将检索url参数($this->getRequest()->getParam('url');),将.html剥离结束并对结果执行某些操作(在我的情况下,我获取了页面来自基于url的数据库)

相关问题