使用CakePHP中的正则表达式进行路由#

时间:2018-01-25 22:25:43

标签: cakephp-3.4

我正在寻找有关在CakePHP3.4.6中设置路线的帮助 网址是可变的。例如,我想要以下网址:

/California/Posts/view/Skateboard/Jan2nd/10
/Texas/Posts/view/Truck/Feb10th/35

连接

/Posts/view/10
/Posts/view/35

分别。这样做时,我需要在浏览器中保留的URL。 (即浏览器URL显示/ California / Posts / view / Skateboard / Jan2nd / 10,同时为/ Posts / view / 10提供内容)

可以通过配置routes.php来完成吗? 任何建议都将受到最高的赞赏。

我尝试在webroot / .htaccess中使用重写规则,例如:

RewriteRule ^[^/]+/Posts/view/[^/]+/[^/]+/(\d+)$ /Posts/view/$1 [L]

但这最终会导致404错误。模式匹配似乎是正确的,因为以下规则有效:

RewriteRule ^[^/]+/Posts/view/[^/]+/[^/]+/(\d+)$ http://www.google.com [L]

谢谢,

1 个答案:

答案 0 :(得分:0)

管理以解决这个问题。

$routes->connect('/:state/Posts/view/:title/:date/:id',
                 ['controller' => 'Posts', 'action' => 'view'],
                 ['id' => '\d+', 'pass' => ['id']]

这份工作