8

我在一些模型中添加了 slug,但是由于 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
4

2 回答 2

17

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

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

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

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

于 2013-04-08T06:33:31.167 回答
2

对于 301 重定向,在您的控制器中写入以下代码:

headers["Status"] = "301 永久移动"

redirect_to " http://host.com/foo/foo_slug " # 在你的情况下

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

否则,通过将整个 url 放入字符串中来使用 ruby​​ 插值

于 2013-04-08T06:39:34.687 回答