ручка рельсов 404 с URL перенаправлением - PullRequest
5 голосов
/ 08 марта 2011

Я хочу использовать рельсы для перенаправления ссылок, которые, я уверен, есть в Интернете со старого моего домена на новый.

Я бы хотел взять адрес example.com/about (больше не будет)

и в моем application_controller взять 404, проверьте URL, а затем перенаправьте на

newexample.com / о

Какой лучший способ сделать это?

Ответы [ 2 ]

8 голосов
/ 08 марта 2011

Добавьте это в конец вашего файла маршрутов:

map.connect '*path', :controller => 'some_controller', :action => 'some_action'

Это перехватит любые 404. В контроллере и действии, которое будет обрабатывать этот маршрут, используйте params[:path] для проверки URL. Тогда вы можете redirect_to на основе того, что содержится в params[:path].

0 голосов
/ 08 марта 2011

Вам нужно использовать rescue_from . В вашем ApplicationController добавьте что-то вроде:

rescue_from ActionController::RoutingError,       :with => :redirect_missing
rescue_from ActionController::UnknownController,  :with => :redirect_missing
rescue_from ActionController::UnknownAction,      :with => :redirect_missing

def redirect_missing
  redirect_to "http://newexample.com/about"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...