伪造的URL缩短器

时间:2018-06-25 15:10:18

标签: cakephp-3.5

我想将www.myhost.com/g/:id重定向到www.myhost.com/jobs/view/:id。目前,以下代码可以满足要求:

$routes->connect(
    '/g/:id',
    ['controller' => 'Jobs', 'action' => 'view'],
    ['pass' => ['id'], 'status' => 301, 'persist' => ['id']]
);

但是,它在地址栏中仍然显示www.myhost.com/g/:id。我希望它显示完整的URL(www.myhost.com/jobs/view/:id),而不是“缩短的” URL。

我如何调整代码以完成上述操作?

1 个答案:

答案 0 :(得分:1)

Router::connect是一种将一条路由连接到另一条路由而无需完全重定向的方法。

如果您要重定向用户并将其暴露给用户,则可以使用Router::redirect()。它会自动设置301状态。

$routes->redirect(
    '/g/:id', 
    ['controller' => 'Jobs', 'action' => 'view'], 
    ['pass' => ['id'], 'persist' => true]
);