使用 nginx 在 Elastic beanstalk 上使用 https 从非 www 重定向到 www,用于 ruby​​ on rail 应用程序

使用 nginx 在 Elastic beanstalk 上使用 https 从非 www 重定向到 www,用于 ruby​​ on rail 应用程序

我在 AWS elastic beanstalk 上使用 nginx 和 puma 设置了一个 ruby​​ on rails 应用程序,我的需求是将所有请求从http://example.comhttp://www.example.com或重定向https://example.comhttps://www.example.com。另外,我不希望将来自子域的请求重定向到 www,就像我不想http://subdomain.example.com重定向到https://www.expample.com或 一样https://www.subdomain.example.com

使用链接

https://stackoverflow.com/questions/24297375/how-to-get-elastic-beanstalk-nginx-backed-proxy-server-to-auto-redirect-from-htt

我能够将我的所有请求从 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请求保持为非安全,那么您可以有更具体的约束。

相关内容