【发布时间】:2017-04-12 18:25:21
【问题描述】:
我正在设置一个 Phoenix 应用程序,该应用程序从同一个端点为多个子域提供服务。它所做的只是根据请求的子域使用一个插件在端点插件的末尾选择一个不同的路由器。一切正常。
问题在于force_ssl 配置。
我的端点配置如下所示:
config :frontend, Frontend.Endpoint,
on_init: {Frontend.Endpoint, :load_from_system_env, []},
url: [scheme: "https", host: "myapp.com", port: 443],
force_ssl: [rewrite_on: [:x_forwarded_proto]],
cache_static_manifest: "priv/static/cache_manifest.json"
主机必须是myapp.com,因为此端点配置适用于所有子域。
不幸的是,此配置导致对foo.myapp.com(HTTP 和 HTTPS)的所有请求都被 301 重定向到 https://myapp.com。
我想要的行为是 301:
-
http://foo.myapp.com到https://foo.myapp.com -
http://bar.myapp.com到https://bar.myapp.com
对https://foo.myapp.com 和https://bar.myapp.com 的请求不应被重定向。
我们将不胜感激!如果相关,我在 Phoenix 1.3 上。
【问题讨论】: