Handler 301 is a plugin for Ruby on Rails that lets you easily manage 301 redirections in on place in order to redirect them to current named routes.
All necessary informations are available on the wiki : wiki.github.com/kwi/handler301
In the config/handler301.yml of your rails app :
"old_url.html": home_path "old_url_without_path.html": home "product_number_one.html": products_path :id => 1
Then, configure a controller that match non matching routes in your config/routes.rb
ActionController::Routing::Routes.draw do |map| map.connect "*path", :controller => 'error', :action => 'handle404' end
MkdBaseApp::Application.routes.draw do match "*path" => 'error#handle404' end
And finally, in your ErrorController (or whatever the name of your non matching routes controller) :
class ErrorController < ApplicationController def handle404 unless handle_301(request.path, request.query_parameters) # Do your stuff here end end end
-
Change for using Rails metal in order to speed up the mechanism
Copyright © 2010 Guillaume Luccisano - g-mai|: guillaume.luccisano, released under the MIT license