Ruby on Rails 301重定向

时间:2013-04-08 06:00:06

标签: ruby-on-rails redirect seo actioncontroller

我在某些模型中添加了slugs,但由于SEO,我需要从旧链接进行301重定向: 老:

http://host.com/foo/1

新:

http://host.com/foo/foo_slug

问题: 在这种情况下如何实现301重定向? 是否可以从大写链接实现301重定向?像这样:

http://host.com/foo/FOO_SLUG -> http://host.com/foo/foo_slug

2 个答案:

答案 0 :(得分:15)

您应该可以通过将其添加到控制器操作来重定向状态301:

redirect_to "http://host.com/foo/foo_slug", :status => 301

有关详细信息,请参阅redirect_to的API文档。

将大写的URL重定向到小写版本应该没有问题,尽管HTTP服务器层可以更好地处理这些问题,例如Apache mod_rewrite规则。

答案 1 :(得分:2)

对于301重定向,请在控制器中编写此代码:

标题[“状态”] =“301永久移动”

redirect_to“http://host.com/foo/foo_slug”#在您的情况下

对于第二个问题,如果你提到硬编码网址,请使用大写或小写。

否则通过将整个URL放入字符串

来使用ruby插值