Reputation: 1744
I added slugs to some of the models, but because of SEO I need to do 301 redirection from old links: old:
http://host.com/foo/1
new:
http://host.com/foo/foo_slug
question: how to implement 301 redirection in this case? and is it possible to implement 301 redirection from uppercased link? Like this:
http://host.com/foo/FOO_SLUG -> http://host.com/foo/foo_slug
Upvotes: 8
Views: 9747
Reputation: 139
For 301 redirection write this code in your controller:
headers["Status"] = "301 Moved Permanently"
redirect_to "http://host.com/foo/foo_slug" # in your case
And for second question, use capitalise or down case if you mentioned hardcode url.
Otherwise use ruby interpolation by putting whole url in string
Upvotes: 2
Reputation: 11588
You should be able to redirect with status 301 by adding this to your controller action:
redirect_to "http://host.com/foo/foo_slug", :status => 301
See the API documentation for redirect_to
for details.
And there should be no problem with redirecting upper-cased URLs to lowercased versions, although this may be better handled by something at the HTTP server layer such as Apache mod_rewrite rules.
Upvotes: 18