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

Routing with regex in CakePHP#

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

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

连接到

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

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

可以通过配置routes.php来完成吗? 任何建议将不胜感激。

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

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

但这只是以 404 错误结束。模式匹配似乎是正确的,因为以下规则有效:

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

谢谢,

设法解决这个问题。

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

完成任务