【问题标题】:Cakephp, Route old google search results to new home pageCakephp,将旧的谷歌搜索结果路由到新的主页
【发布时间】: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


【解决方案1】:

我建议您根据需要使用 .htaccess 文件来 301 重定向页面,而不是尝试处理 cakePHP 路由文件中的所有内容。

您上面的内容不会转移排名,因为据我所知,在您提出的任何基于 routes.php 的解决方案中都没有输出 301 重定向。

【讨论】:

    【解决方案2】:

    更大的问题是路由不会重定向,它会将 URL 与响应连接起来。换句话说,它确保您现在无效的 URL 仍然产生一个有效的页面。这与您想要实现的目标完全相反。

    您想告诉访问者,曾经有效的 URL 不再有效。您可以通过发出适当的 HTTP 响应代码来执行此操作,在本例中为 301 Moved Permanently。如果不这样做,URL 对搜索引擎仍然有效,并且不会更新其索引。

    您要么必须通过路由将所有无效 URL 连接到将发出 $this->redirect('...', 301) 的控制器操作,要么您可以使用一些 .htaccess 规则进行重定向。使用哪一个取决于重定向的复杂性,但您可能可以使用简单的 .htaccess mod_rewrite 规则。

    SO上有足够的例子:https://stackoverflow.com/search?q=htaccess+301+redirect

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2018-04-03
      • 2012-09-25
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多