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

标签 ruby url-rewriting 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 .我如何重写它才能指向正确的位置?

最佳答案

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

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

关于ruby - 如何使用 rack-rewrite 重写到不同的域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10930288/

相关文章:

url-rewriting - 如何为用户获取个性化的子域名并使其发挥作用?

.htaccess - Htaccess 重写规则(主页异常(exception))

asp.net - 无法使用 URL 重写出站规则更改 IIS 响应代码

ruby-on-rails - 如何使用 gem rack-rewrite to 301 重定向从裸域到 www 域的完整 URL

ruby - 将查询字符串添加到机架重写响应

ruby-on-rails - RSpec - stub 实例方法

ruby - 在 Ruby 中生成 GUID

ruby - ruby 可以有一个以 Float 开头的范围吗?

ruby - 如何在没有 nilcheck 的情况下将 nil 值转换为 true