301仅使用路由重定向,不使用控制器

时间:2011-11-26 05:43:36

标签: ruby-on-rails ruby heroku http-status-code-301

我想做一个301重定向,但我想要一个全部捕获。我目前拥有的是,域名是在Wordpress上托管的,我有网页和帖子。如果我的新rails应用程序上不存在这些页面或帖子,我想重定向到主页。

我正在使用Heroku来托管这个,所以据我所知,我无法使用Web服务器,因此我需要在Rails中执行此操作。我本身没有控制器,但我可以劫持页面的控制器并使用它。有没有办法我可以在路径文件的底部放置一些内容,“如果此页面不存在,请将其重新路由到主页”?

2 个答案:

答案 0 :(得分:2)

docs,3.10开始,您可以使用高级约束和重定向,如:

matches '*any_path' => redirect('/')

请务必在页面路由后添加此全局路由,因为此路由与所有路径匹配。

答案 1 :(得分:1)

马克的答案对我来说似乎没有用,但它直接指向我,所以我给了他绿色的复选标记。

我最后要做的是将以下内容添加到我的routes.rb:

match "*rest", :to => "pages#redirect"

然后在我的页面控制器中执行以下操作:

def redirect
  redirect_to root_path
end