Ruby on Rails 301 redirection

xamenrax picture xamenrax · Apr 8, 2013 · Viewed 8.5k times · Source

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

Answer

Stuart M picture Stuart M · Apr 8, 2013

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.