我的应用程序旧网址是(在php中)
www.abc.com/athlete/?country=2
现在新的网址是(在Rails中):
www.asdf.com/athletes/?c=2
现在,我需要将旧网址重定向(google抓取)到新网址。通过config/routes.rb
或通过重定向控制器使用重定向一个垂直动作
def redirect_to_index
redirect_to :action => :index, :c => params[:country], :status => 301
end
但问题是有许多旧网址没有参数,即没有country
。但是在reidrecting我总是?c=
。
我不想使用粗略的代码,如
def redirect_to_index
if params[:country]
redirect_to :action => :index, :c => params[:country], :status => 301
else
redirect_to :action => :index, :status => 301
end
end
有更好的解决方案吗?
答案 0 :(得分:2)
你可以这样做:
new_params = {
:c => params[:country],
:x => params[:something_else]
}.reject{|k,v| v.nil? }
redirect_to ({ :action => :index, :status => 301 }.merge(new_params))