如何使用rack-rewrite重写到不同的域?

时间:2012-06-07 10:48:35

标签: ruby rewrite rack-rewrite

我想重写另一个域,以便http://domain1.com/abc指向http://domain2.com/xyz。这是我的代码:

require 'rack/rewrite'
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do
  rewrite '/abc', 'http://domain2.com/xyz'
end

但在我打开http://domain1.com/abc后,我被指向http://domain1.com/http:/domain2.com/xyz。我怎么能重写它以便它指向正确的位置?

1 个答案:

答案 0 :(得分:1)

您需要使用重定向,而不是重写。重写只是更改应用程序看到的URL,而重定向则执行实际的HTTP 301。

require 'rack/rewrite'
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do
  r301 '/abc', 'http://domain2.com/xyz'
end