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 в строку