Ruby on Rails 301 перенаправление

я добавил слизни к некоторым моделям, но из-за SEO мне нужно сделать 301 перенаправление со старых ссылок: старый:

http://host.com/foo/1

new:

http://host.com/foo/foo_slug

вопрос: как реализовать редирект 301 в этом случае? и можно ли реализовать перенаправление 301 из прописной ссылки? Вот так:

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

2 ответов


вы должны быть в состоянии перенаправить со статусом 301, добавив это к действию контроллера:

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

см. документацию по API для redirect_to для сведения.

и не должно быть никаких проблем с перенаправлением URL-адресов в верхнем регистре на более низкие версии, хотя это может быть лучше обработано чем-то на уровне HTTP-сервера, например Apache и mod_rewrite правила.


для перенаправления 301 напишите этот код в своем контроллере:

заголовки ["статус"] = "301 перемещен навсегда"

redirect_to "http://host.com/foo/foo_slug" # в вашем случае

и для второго вопроса используйте заглавную или вниз, если вы упомянули url-адрес жесткого кода.

в противном случае используйте интерполяцию ruby, поместив весь url в строку