使用 Router::Redirect 的 Cakephp 2 的 301 重定向

301 redirection for Cakephp 2 using Router::Redirect

所以我一直在努力让 Router::redirect 为我正在进行的项目工作。 我需要为几个 link 添加尾部斜杠。 link atm 显示为“/page/contact”,但我需要的是“/page/contact/”。

我已经尝试了两种方法从 routes.php 文件

获取它到 301 重定向

第一种方法

Router::connect('/page/contact', array('controller' => 'pages', 'action' => 'contact'));
Router::redirect('/page/contact', array('controller' => 'pages', 'action' => 'contact'), array(`status` => 301));

第二种方法

Router::connect('/page/contact', array('controller' => 'pages', 'action' => 'contact'));
Router::redirect('/page/contact', '/page/contact/', array(`status` => 301));

我见过其他更改 .htaccess 文件的方法,但我的老板特别告诉我不要使用该方法。

我能做什么?

编辑

好的,现在我正在尝试使用 \app\webroot.htaccess

中的 .htaccess 文件进行重定向
#Method 1
RedirectMatch 302 ^/page/contact http://mvwww/page/contact/

此方法显示正确 URL 但在 Fire Fox 中显示以下错误。

"页面重定向不正确。 Firefox 检测到服务器正在以一种永远不会完成的方式重定向对该地址的请求。 此问题有时可能是由于禁用或拒绝接受 cookie 引起的。"

好的,我找到了解决问题的方法。 简单重定向不起作用,所以我如上所述使用 RedirectMatch,但在末尾添加“$”以表明 URL 应该在没有尾部斜杠的情况下结束。

RedirectMatch 302 /page/contact$ http://mvwww/page/contact/

上面这行代码会将"mysite/page/contact"重定向到"mysite/page/contact/"

感谢大家的帮助。 祝你有美好的一天。