我在某些模型中添加了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
答案 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插值