2011-11-26 3 views
1

Je voudrais faire une redirection 301, mais je veux tout attraper. Ce que j'ai actuellement est, le domaine est hébergé sur Wordpress et j'ai à la fois des pages et des messages. Si ces pages ou messages n'existent pas sur mon application de nouveaux rails, je souhaite rediriger vers la page d'accueil. J'utilise Heroku pour héberger ça, donc je ne peux pas le faire avec le serveur web, autant que je sache, donc je dois le faire dans Rails. Je n'ai pas de contrôleur en soi, mais je pourrais détourner le contrôleur de la page et l'utiliser. Y a-t-il un moyen de mettre quelque chose au bas du fichier des routes qui dit: «Si cette page n'existe pas, redirige-la vers la page d'accueil»?301 Redirection en utilisant seulement des routes, pas de contrôleur

Répondre

2

A partir docs, 3.10, vous pouvez utiliser des contraintes avancées et réoriente comme:

matches '*any_path' => redirect('/') 

Assurez-vous d'ajouter cet itinéraire global après vos pages itinéraires que cette correspondance d'itinéraire tous les chemins.

+1

Mais cela fournit la 301 redirection ou quel type de redirection est-ce? Je ne peux pas trouver cela dans les documents que vous liez. –

+1

Selon http://www.camelpunch.com/web-development/tutorials/301-redirect-with-rails/ cela crée en fait le 301. –

1

La réponse de Mark ne semblait pas fonctionner pour moi, mais elle m'a indiqué dans le bon direct, donc je lui ai donné la coche verte.

que j'ai fini d'avoir à faire est d'ajouter ce qui suit à mon routes.rb:

match "*rest", :to => "pages#redirect"

puis dans mon contrôleur pages, procédez comme suit:

def redirect 
    redirect_to root_path 
end