0

我的应用需要使用两个域。如何保存出现在其中一个域上的参数并使用这些参数重定向到另一个域?此外,参数的值将始终在变化。

domain1.com?param1=true

redirects to

domain2.com?param1=true
4

3 回答 3

0

最好的选择可能是处理上游 Web 服务器(如 nginx)上的所有域并将请求代理到一个应用程序,而无需直接在 Rails 应用程序中处理重定向。

就像是

server {
  server_name .mydomain.com;
  rewrite ^ http://www.adifferentdomain.com$request_uri? permanent;
}

如果您仍然需要在 Rails 端执行重定向,您可以使用redirect_to(至少如果您总是可以说哪个域是目标域)。

redirect_to root_url(host: "adifferentdomain.com", params: request.parameters)
于 2013-05-27T10:59:43.807 回答
0

这会有一些帮助

request.original_fullpath
于 2013-05-27T11:05:54.817 回答
0

感谢大家的帮助。我最终编写了一个操作,它只是创建带有参数的新 URL 作为字符串并重定向:

def stripe_redirect
        subdomain = request.subdomain
        if subdomain == 'secure'
            params = request.original_fullpath.split("?").second
            new_url = "http://www.newdomain.com/auth/stripe_connect/callback?" << params
            redirect_to new_url
        end
    end
于 2013-05-27T17:44:00.780 回答