2009-08-19 7 views
0

J'ai un tas de contenu a expiré à des URL tout se terminant par .html à partir d'un héritage site HTML statique:Comment rediriger tout le contenu qui se termine par `.html` vers la route racine (en changeant seulement les routes.rb)?

example.com/a.html 
example.com/b.html 

Au lieu d'afficher une page d'erreur Rails qui dit:

Routing Error 
No route matches "/a.html" with {:method=>:get} 

Je veux réacheminer tout le contenu qui se termine dans .html page d'accueil (le trajet racine):

map.root :controller => 'home', :action => 'index' 

Est-il possible de le faire en changeant seulement la définition de l'itinéraire ou est-il nécessaire de define a catch-all route?

Répondre

3

Vous pouvez faire quelque chose comme ce qui suit, dans config/routes.rb:

map.connect ':pagename.html', :controller => 'home', :action => 'index' 

Voir la Regular Routes section of the Rails Routing Guide pour plus d'informations sur ce style de la route.

+0

Merci! – apple

Questions connexes