2012-12-20 11 views
6

Desidero impostare un reindirizzamento permanente di ogni percorso che inizia con /articles nel percorso analogo che inizia con /blog.301 reindirizzamento di un gruppo di percorsi correlati in Rails 3 route

So come reindirizzare i percorsi individualmente nei percorsi, ad es.

match "/articles/" => redirect("/blog/")

Tuttavia, se anche io voglio reindirizzare percorsi come /articles/:id e /articles/category/:id ecc, io bisogno di avere redirect esplicite per quelli pure.

Spero che ci sia un modo per reindirizzare tutti questi percorsi, presenti e futuri, con un colpo solo.

Mi rendo conto che potrei farlo relativamente facilmente nel controller con un before_filter, ma credo che questo comportamento appartenga ai percorsi e spero di mantenerlo lì.

risposta

1
match '/articles(/*path)' => redirect { |params, req| "/blog/#{params[:path]}" } 
+0

Funziona! Grazie. – hoffm

0

Modifica

Il problema è stato la cattura i percorsi con parametri, ora dovrebbe essere risolto

Seguendo le rotaie guide, il modo per farlo dovrebbe essere:

match "/articles(/:action(/:id(.:format)))" => redirect {|p, req| "/blog/#{req.subdomain}" } 

Estratto da Redirection

I ho pe questo ti aiuta!

+0

Nessuna di queste opzioni sembra funzionare per me. Il primo tratta correttamente '/ articles', ma non corrisponde ad altri percorsi che iniziano con'/articles'. Il secondo reindirizza '/ articles' a'/blog/articles', e inoltre non corrisponde ad altri percorsi che iniziano con '/ articles' – hoffm

+0

Il problema è stato catturare i percorsi con parametri, che ora dovrebbero essere risolti. Fatemi sapere se avete percorsi nidificati – felipeclopes

+0

eventuali risultati da questo? – felipeclopes

Problemi correlati