URL重写Ruby on Rails
我们在旧服务器上安装了Redmine,并将其移动到具有新域的新服务器上。问题是,我们需要将URL从旧域重定向到新域。我对ruby真的不太了解。我一直在想,在这个网站上重定向URL就像使用.htaccess重写规则一样简单,但我发现它有所不同。我在这里读过一些答案,但不知道应该把这些代码放在哪里 场景应该是这样的: 从 应该重定向到 有人能帮我怎么做吗?或者如果你有更好的想法如何实现这一点? 同时我打算读一些ruby指南。 谢谢大家 更新: 通过执行以下操作,我成功创建了一个简单的重定向: 我创建了一个控制器重定向\u controller.rb:URL重写Ruby on Rails,ruby,url,redmine,Ruby,Url,Redmine,我们在旧服务器上安装了Redmine,并将其移动到具有新域的新服务器上。问题是,我们需要将URL从旧域重定向到新域。我对ruby真的不太了解。我一直在想,在这个网站上重定向URL就像使用.htaccess重写规则一样简单,但我发现它有所不同。我在这里读过一些答案,但不知道应该把这些代码放在哪里 场景应该是这样的: 从 应该重定向到 有人能帮我怎么做吗?或者如果你有更好的想法如何实现这一点? 同时我打算读一些ruby指南。 谢谢大家 更新: 通过执行以下操作,我成功创建了一个简单的重定向: 我创建
class RedirectController < ApplicationController
before_filter :show
def show
redirect_to "http://www.new-domain.com:3000/", :status => :moved_permanently, :notice => "Notice: A redirect!!!"
end
end
但我只是在成功登录后才设法重定向页面。如何将所有页面重定向到保留参数(如/issues/3456,如果有)的新页面?您可以转到
应用程序.rb
文件(我发现它比将重定向放在应用程序控制器
中要好),该文件被加载以启动所有rails和所有引擎。这里的关键是使用
head :moved_permanently, :location => "http://www.newdomain.com/"
要调用它,可以用我在博客中找到的方法来包装它。我补充了一些评论
def perm_redirect_to(options)
url = case options
when String # if you pass a string url, which is your case
options
else
url_for(options) # if you pass some more complex option hash in
# `options`, which doesn't seem to be your case
end
head :moved_permanently, :location => url
end
您可以调用此方法,将urlperm\u redirect\u传递到(您的新url)
def perm_redirect_to(options)
url = case options
when String # if you pass a string url, which is your case
options
else
url_for(options) # if you pass some more complex option hash in
# `options`, which doesn't seem to be your case
end
head :moved_permanently, :location => url
end