我在 AWS elastic beanstalk 上使用 nginx 和 puma 设置了一个 ruby on rails 应用程序,我的需求是将所有请求从http://example.com
或http://www.example.com
或重定向https://example.com
到https://www.example.com
。另外,我不希望将来自子域的请求重定向到 www,就像我不想http://subdomain.example.com
重定向到https://www.expample.com
或 一样https://www.subdomain.example.com
。
使用链接
我能够将我的所有请求从 http 重定向到 https,但这不会将非 www 请求重定向到 www 请求。
答案1
我在我的文件中这样做routes.rb
:
# Redirect example.com => www.example.com
constraints(host: /^example\.com/i) do
match "/(*path)" => redirect { |params, _req| "https://www.example.com/#{params[:path]}" }, via: [:get, :post]
end
这将适用于非安全和安全的 https 连接,但如果您确实需要将http
请求保持为非安全,那么您可以有更具体的约束。