Php Zend Framework 2:捕获所有路由和url转义
我正在尝试创建或找到一条基本上可以覆盖所有内容的路线。 我需要的是一个可以像下面这样传递信息的东西Php Zend Framework 2:捕获所有路由和url转义,php,routing,zend-framework2,Php,Routing,Zend Framework2,我正在尝试创建或找到一条基本上可以覆盖所有内容的路线。 我需要的是一个可以像下面这样传递信息的东西 /some-page/some-childpage/another-childpage /another-page /yet-anotherpage/page 这些url与任何模块都不相关,因此管理员可以在任何url上创建页面 我已经有了一些东西,可以使用通配符路由和子通配符路由捕获当前的路由,但是当我在URL视图帮助器中使用它时,它在“URL”参数中对正向斜杠进行编码。 基本上: $this-
/some-page/some-childpage/another-childpage
/another-page
/yet-anotherpage/page
这些url与任何模块都不相关,因此管理员可以在任何url上创建页面
我已经有了一些东西,可以使用通配符路由和子通配符路由捕获当前的路由,但是当我在URL视图帮助器中使用它时,它在“URL”参数中对正向斜杠进行编码。
基本上:
$this->url( 'public_page', array( 'url' => 'foo/bar' ) )
正在输出/foo%2Fbar
除了不允许/s之外,在尝试检索url参数时,它还将查询字符串返回到第一个/
任何帮助和建议都会很好
问候,,
Michael我不确定你可以用任意数量的片段来实现这一点。您可以指定一条具有预期最大分段数的分段管线,然后只允许它们都是可选的,但如果您试图使用大量分段,这似乎是一种肮脏的做法
'route' => '/:controller[[[[/:action]/:third]/:fourth]/:fifth]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]+',
'action' => '[a-zA-Z][a-zA-Z0-9_-]+',
),
'defaults' => array(
'controller' => 'Application\Controller\IndexController',
'action' => 'index',
'third' => 'something',
'fourth' => 'something-else',
),
你可以用正则表达式的方法来完成一些事情,但同样的,这也可能是令人讨厌的
我可能会建议使用更好的url结构,因为深度不太好的url。我尝试构建url,因为我有包含斜杠的永久链接,但当url从url帮助器组装时,它们会被转义。有类似的东西:。这和过去表单中的标签逃跑一样痛苦。