【问题标题】:Fake URL Shortener假网址缩短器
【发布时间】:2018-12-04 05:16:38
【问题描述】:

我想将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。

我将如何调整代码以执行上述操作?

【问题讨论】:

    标签: cakephp-3.5


    【解决方案1】:

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

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

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

    【讨论】:

    • 阅读您的回答让我意识到我可以尝试 $routes->redirect 解决我的问题。现在它只是在最后添加一个愚蠢的?id=:id。所以它把http://www.myhost.com/g/:id 变成了http://www.myhost.com/jobs/view/:id?id=:id,其中:id 是被抛出的实际整数值。如果你更新你的答案,我会加赞并接受。
    • 您能否更新问题,使redirect 的参数看起来像这样:'/g/:id', ['controller' => 'Jobs', 'action' => 'view'], ['pass' => ['id'], 'persist' => true] 因为这是有效的确切代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多