我已经浏览了许多与此相关的帖子,但我不明白我哪里出错了。
我想要的是所有 http
、https
和 mydomain.com
以及 www.mydomain.com
请求转到 https://www.mydomain.com
(类似于 this 人)
我检查了我的 SSL 证书,它说它适用于 www.mydomain.com。如果我转到 mydomain.com 或 www.mydomain.com,我已经检查了证书,它似乎提供了相同的信息,而且两者似乎都是安全的(小绿锁)。
我在 this 上尝试了解决方案发布,但出现以下错误:
Restarting nginx: nginx: [emerg] invalid parameter "443" in /path/nginx/sites-enabled/example:3
我遇到的问题是用户在 www.mydomain.com 页面上登录,出于某种原因,他们被重定向到 mydomain.com 页面,然后他们看起来已注销,需要重新登录。老实说,我不确定这是 rails 问题还是 nginx 配置问题。
我的 nginx 配置文件如下:
server {
listen 80;
server_name mydomain.com www.mydomain.com;
return 301 https://www.mydomain.com$request_uri;
}
server {
listen 443 ssl default;
server_name www.mydomain.com;
...other stuff...
}
非常感谢您的帮助。我很困惑。
最佳答案
我想我已经解决了,我认为我的问题部分与 Rails 相关,部分与 Nginx 相关。
在我的轨道上
def default_url_options
if Rails.env.production?
{:host => "myapp.com"}
我改成了
def default_url_options
if Rails.env.production?
{:host => "www.myapp.com"}
它有帮助,但如果人们首先导航到 myapp.com 则不会。
完全修复它的是在我的 nginx 配置文件中添加另一个重定向服务器:
server {
listen 443 ssl;
server_name myapp.com;
return 301 https://www.myapp.com$request_uri;
}
我希望这对某人有帮助。
关于ssl - Rails 和 Nginx www 和非 www 搞混了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921225/