301将旧的php路径重定向到新的Rails

时间:2011-10-20 06:58:09

标签: php ruby-on-rails redirect

我正在将一个旧的php网站改造成RubyOnRails(3.0.3)。现有的网站(用PHP编写)已经存在了几年,并获得了很多链接,并且在谷歌中处于有利位置。

现在,由于我在同一个域中的Rails中发布它,我希望将旧文件301重定向到新版本中的相应文件。什么是最好的方式?

以下情况:

  • 我在同一个域上构建新网站,我将替换php-version
  • 文件重命名方式没有逻辑。例如www.domain.com/cat/home/page/helloworld.php可能在www.domain.com/stuff/hello-world-in-rails上有相应的位置,有些文件已被删除等。
  • 因此,我想在一个表或类似的表中指定,其中一列是旧路径,另一列是新路径。当有人试图访问www.domain.com/cat/home/page/helloworld.php时,他们将是301:d到www.domain.com/stuff/hello-world-in-rails

当我将php-sites变成Wordpress时,我已经通过在每个指向新路径的php文件中添加重定向代码来解决这个问题(在Wordpress中)。由于我的Rails安装不支持php文件,所以这是不可能的。

我认为mod_rewrite是我的首选武器,但我应该怎么做呢?

2 个答案:

答案 0 :(得分:3)

您可以管理路线文件中的所有重定向。这里是路线的文件,特别是redirct方法对你来说是有趣的!

http://guides.rubyonrails.org/routing.html#redirection

答案 1 :(得分:2)

我建议使用Rack处理此任务,应该快速并从rails应用程序中卸载。

架子上有一个称为“redirect

的rubygem

它允许您使用简单数组检测和重定向某些URL。 e.g。

redirect  ['/catch_url', '/redirect_url'],
          ['/catch_url2', '/redirect_url2']

注意:repo一段时间没有更新,所以不确定它是否仍在工作,即使它没有,也没有太多的代码,你可以很容易地推出自己的调整版本如果需要的话。