Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
URL重写Ruby on Rails_Ruby_Url_Redmine - Fatal编程技术网

URL重写Ruby on Rails

URL重写Ruby on Rails,ruby,url,redmine,Ruby,Url,Redmine,我们在旧服务器上安装了Redmine,并将其移动到具有新域的新服务器上。问题是,我们需要将URL从旧域重定向到新域。我对ruby真的不太了解。我一直在想,在这个网站上重定向URL就像使用.htaccess重写规则一样简单,但我发现它有所不同。我在这里读过一些答案,但不知道应该把这些代码放在哪里 场景应该是这样的: 从 应该重定向到 有人能帮我怎么做吗?或者如果你有更好的想法如何实现这一点? 同时我打算读一些ruby指南。 谢谢大家 更新: 通过执行以下操作,我成功创建了一个简单的重定向: 我创建

我们在旧服务器上安装了Redmine,并将其移动到具有新域的新服务器上。问题是,我们需要将URL从旧域重定向到新域。我对ruby真的不太了解。我一直在想,在这个网站上重定向URL就像使用.htaccess重写规则一样简单,但我发现它有所不同。我在这里读过一些答案,但不知道应该把这些代码放在哪里

场景应该是这样的:

应该重定向到

有人能帮我怎么做吗?或者如果你有更好的想法如何实现这一点? 同时我打算读一些ruby指南。 谢谢大家

更新:

通过执行以下操作,我成功创建了一个简单的重定向: 我创建了一个控制器重定向\u controller.rb:

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
您可以调用此方法,将url
perm\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