簡體   English   中英

使用Rack&Faraday轉發請求

[英]Forward request using Rack & Faraday

我想編寫一個將請求轉發到其他域的Rack應用。 法拉第寶石可能對此很好。 這樣的事情會很好:

我的config.ru文件:

...
my_app = lambda do |env|
  conn = Faraday.new(env)
  conn.url = "http://some-other-domain.com"
  env.get? ? conn.get : conn.post
end

run my_app

可以這么簡單嗎? 有任何想法嗎?

您可能想看看rack-rewrite( https://github.com/jtrupiano/rack-rewrite )。 您可以使用它來定義和應用重寫和重定向規則。 適合您的用例的機架重寫的可能用法如下:

require 'rack/rewrite'
use Rack::Rewrite do
  r301 %r{.*}, 'http://mynewdomain.com$&', :if => Proc.new {|rack_env|
    rack_env['SERVER_NAME'] != 'mynewdomain.com'
  }
end
# rest of your app

重寫規則的簽名是rewrite_method(request_url_expression,rewrite_url_expression,選項)。 在此示例中,方法#r301將為與給定正則表達式匹配的所有請求url提供永久重定向,並使用請求URI將其重定向到新域(使用$&替換運算符)。 文檔中有更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM