2011-10-20 33 views
1

我正在将一个旧的php网站重新制作成RubyOnRails(3.0.3)。现有的网站(用php编写)已经上网了好几年了,并且获得了很多链接,并且在Google中占有很好的位置。301将旧的php路径重定向到新的Rails

现在,因为我在同一个域中的Rails中释放它,所以我希望将旧文件301重定向到新版本中的相应文件。什么是最好的方法?

这些情况:

  • 我建立在哪里,我更换PHP版本
  • 同一域中的新网站中有怎样的文件已被改名为没有逻辑。例如,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

当我已经使WordPress网站进入WordPress我已经解决了这个问题,在每个php文件中添加一个重定向代码,指向新的路径(在WordPress中)。由于我的Rails安装不支持php文件,但这是不可能的。

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

+0

可能重复的[重新路由旧的内容(html的/ .PHP等),以Ruby on Rails的](http://stackoverflow.com/questions/2063892/reroute-old-content-html- php-etc-to-ruby-on-rails) –

回答

3

您可以管理路由文件中的所有重定向。这里是路线的文档,特别是重定向方法将会为你加以介绍!的

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

+0

是的,这个工作正常。我没有意识到这很简单!但他们301被重定向? – Christoffer

+0

我认为你可以给HTTP代码作为参数的方法。检查文档,我认为有一个选项叫做:状态,让你可以改变HTTP状态。 – davidb

2

我建议使用Rack来处理这个任务,应该很快,并从您的Rails应用程序中卸载。

有一个叫“redirect

机架一个rubygem它可以让你使用一个简单的数组来检测和重定向某些URL。例如

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

注:回购已经有一段时间没有更新了,所以不知道它是否仍然在工作,即使是没有,有没有太多的代码,你很可能会推出自己的调整版本如果需要,它很容易。

相关问题