2009-10-12 3 views
0

Я создал новый веб-сайт, размещенный с Heroku, около 3 недель назад и с тех пор решил изменить его доменное имя. Я пытался выяснить, как сделать сайт широкого редирект, и я думаю идти с чем-то, как в моем контроллере приложений (добавить перед фильтром):Переадресация на сайт

def new_domain 
    redirect_to url_for(:controller => params[:controller], :action => params[:action], :id => params[:id], :host => 'http://newdomain.com'), :status => 301 
end 

Это, очевидно, не будет работать со всеми действиями и не удастся, если url передает дополнительные параметры. Мне было интересно, есть ли что-то более общее, что я могу сделать, поэтому мне не нужно иметь кучу статей if else?

ответ

1

Попробуйте это.

params[:host] = 'http://newdomain.com' 
redirect_to url_for(params), :status => 301 

«url_for» взять хэш и изменив «хозяина» в Params, он должен идти к новому хозяину с остальными Params.

+0

Не беспокойтесь, спасибо! – LDK

+0

Это выглядит намного чище. Я полагаю, что я должен поставить это в инструкции, чтобы убедиться, что я не перенаправляю людей, или, что еще важнее, ботов Google, переходя в новый домен ... – LDK

1

Поскольку последние версии Rails теперь придерживаются интерфейса Rack и могут включать Rack middleware, возможно, стоит взглянуть на Canonical Host. Я не использовал его сам, но на первый взгляд кажется, что это может быть хорошим решением.

+0

Прохладный, спасибо за подсказку. – LDK