与这个问题类似,我已经完成了传递带有 url 扩展名的格式,但是您必须预先声明传递的参数。例子:
new Zend_Controller_Router_Route_Regex(
'([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)(\.(\w+))?',
array(
'module' => 'Default',
'controller' => 'index',
'action' => 'index',
),
array(
1 => 'module',
2 => 'controller',
3 => 'action',
4 => 'extension',
5 => 'format'
)
);
但是如果我想要 /:module/:controller/:action/*.:format 怎么办?这样无论我通过 url 传递多少参数,'.whatever' 都将是格式参数?基本上,我正在尝试采用默认路由器并将扩展名添加为“格式参数”。
编辑:
问题不在于扩展,问题在于添加其他参数。例如
/blogs/posts/view/post/500/foo/bar/format/html
将转化为:array('module'=>'blogs','controller'=>'posts', 'action' => 'view', 'post'=>500, 'format' => 'html', ' foo' => '酒吧');
但我希望能够以相同的路线表示格式,如下所示:
/blogs/post/view/post/500/foo/bar.html
不管在动作和格式之间声明了多少参数。