2011-09-14 6 views
0

J'ai quelques touches avec rediriger 301 dans ma nouvelle application. Je dois rediriger quelques vieilles URL dans la nouvelle. J'ENTRED dans mes itinéraires fichier ceRails redirection 301

match "/traslochi_puglia/index.htm", :to => redirect("/preventivo/90-traslochi-in-puglia") 

et il fonctionne très bien, mais je ne peux pas comprendre pourquoi cette

match "/trasloco_casa_abitazione.htm", :to => redirect("/3-trasloco-casa") 

ne fonctionne pas. Toutes les anciennes URL avec ce modèle "/some_path/page.htm" fonctionne bien mais pas "page.htm". Un indice? Merci

+0

Je suis stupide, je mets ce match '/: id' => "# show frontends",: as =>: frontend avant tout redirections –

Répondre

0

Si vous voulez que nous résolvions le problème spécifique que vous avez souligné dans votre question, nous devons voir l'ensemble de votre fichier routes.rb. Sans cette information, ma première supposition est la suivante:

Le modèle de route typique est /controller/action ou /controller/:id/action ou une combinaison de ceux-ci. Avec le modèle que vous avez montré ci-dessus, et en supposant que vous n'avez pas de routes nommées dans votre fichier , la route que vous avez indiquée pointerait vers un contrôleur, mais pas une action. Par conséquent, votre application ne sait pas quelle action exécuter, sauf si vous avez spécifiquement créé une route appelée /3-trasloco-casa qui ressemble plus à une URL à une ressource spécifique qu'à une action sur un contrôleur. Pour résoudre les problèmes de routage, il suffit d'exécuter rake routes sur la ligne de commande (ce qui vous indique la liste des modèles d'itinéraire que votre application reconnaîtra), puis d'aller plus loin en résolvant les problèmes de reconnaissance d'itinéraire. , tel que décrit dans cette réponse à cette question:

Recognize routes in rails console Session