2012-12-20 26 views
6

Tôi muốn thiết lập chuyển hướng vĩnh viễn của mọi đường dẫn bắt đầu bằng /articles đến đường dẫn tương tự bắt đầu bằng /blog.301 chuyển hướng của một nhóm các đường dẫn có liên quan trong Rails 3 tuyến đường

Tôi biết cách chuyển hướng đường dẫn riêng lẻ trong các tuyến đường, ví dụ:

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

Tuy nhiên, nếu tôi cũng muốn chuyển hướng con đường như /articles/:id/articles/category/:id vv, tôi sẽ cần phải có trang đổi hướng rõ ràng cho những người là tốt.

Tôi hy vọng rằng có một cách để chuyển hướng tất cả các đường dẫn như vậy, hiện tại và tương lai, với một ngã swoop.

Tôi nhận ra rằng tôi có thể thực hiện điều này một cách dễ dàng trong bộ điều khiển với before_filter, nhưng tôi tin hành vi này thuộc về các tuyến đường và tôi hy vọng giữ nó ở đó.

Trả lời

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

Hoạt động! Cảm ơn bạn. – hoffm

0

Sửa

Vấn đề được đánh bắt các tuyến đường với các thông số, bây giờ nó nên được giải quyết

Sau khi hướng dẫn đường ray, cách để làm điều đó nên là:

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

Trích xuất từ ​​Redirection

Tôi ho pe này giúp bạn!

+0

Không có tùy chọn nào trong số này có vẻ phù hợp với tôi. Cái đầu tiên giao dịch với '/ articles' chính xác, nhưng không khớp với các đường dẫn khác bắt đầu bằng'/articles'. Cách thứ hai chuyển hướng '/ articles' sang'/blog/articles', và cũng không khớp với các đường dẫn khác bắt đầu bằng '/ articles' – hoffm

+0

Vấn đề là bắt các tuyến với các tham số, mà bây giờ cần được giải quyết. Hãy cho tôi biết nếu bạn có các tuyến đường lồng nhau – felipeclopes

+0

bất kỳ kết quả nào từ điều này? – felipeclopes

Các vấn đề liên quan