【发布时间】:2011-02-10 16:00:54
【问题描述】:
我为一家公司创建了一个新网站,我希望重定向所有以前的搜索引擎结果。由于有很多页面并且其中大多数都使用了 id 我想使用一些通用的东西而不是重新路由所有旧页面。
我的第一个想法是这样做:
Router::connect('/*', array('controller' => 'pages', 'action' => 'display', 'home'));
并将其放在 routes.php 文件的最后 [因为它是优先级的] 以便所有未通过先前路由操作验证的请求都将返回 true 并重定向到主页。
但是这不起作用。
当我在路由器上使用不同的路径时,它会成功重定向。例如,如果我给它:
Router::connect('/*', array('controller' => 'projects', 'action' => 'browser'));
它工作正常。当使用的控制器是页面,动作显示等时会出现问题。
我正在粘贴我的 routes.php 文件[因为它很小]希望有人能给我提示:
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/company/*', array('controller' => 'articles', 'action' => 'view'));
Router::connect('/contact/*', array('controller' => 'contacts', 'action' => 'view'));
Router::connect('/lang/*', array('controller' => 'p28n', 'action' => 'change'));
Router::connect('/eng/*', array('controller' => 'p28n', 'action' => 'shuntRequest', 'lang' => 'eng'));
Router::connect('/gre/*', array('controller' => 'p28n', 'action' => 'shuntRequest', 'lang' => 'gre'));
Router::parseExtensions('xml');
【问题讨论】:
-
当您将 /* 连接到 Pages::display 时会发生什么?
-
我可能会尝试使用正则表达式在 htaccess 中解决这个问题并发出 301
-
#Travis Leleu,它收到以下消息:“未找到错误:在此服务器上未找到请求的地址 '/asdasdf'。”
-
#DavidYell,您能否举个例子或粘贴一个链接,其中包含有关此问题的更多信息。谢谢
-
在你弄清楚这一点时打开调试。您引用的错误消息可能意味着
debug=0上下文中的任何内容。你可能会收到一个 PHP 警告/错误,它会说同样的话。
标签: cakephp redirect seo search-engine routes