Redirect 特定子页面的Nginx/Django SSL配置

Redirect 特定子页面的Nginx/Django SSL配置,redirect,ssl,nginx,https,Redirect,Ssl,Nginx,Https,我有一个带有Django的nginx/gunicorn/supervisor/posrgresql服务器。我从这台服务器上下载了两个网页,每个网页都有自己的nginx conf文件。我已经购买并下载了SSL证书,它们在某些情况下可以正常工作 我的nginx conf文件如下所示: server { listen 80; server_name name.org; return 301 https://www.name.org; { server { listen

我有一个带有Django的nginx/gunicorn/supervisor/posrgresql服务器。我从这台服务器上下载了两个网页,每个网页都有自己的nginx conf文件。我已经购买并下载了SSL证书,它们在某些情况下可以正常工作

我的nginx conf文件如下所示:

server {
    listen 80;
    server_name name.org;
    return 301 https://www.name.org;
{

server {
    listen 80;
    listen 443 ssl;
    server_name www.name.org;

    ssl_certificate...

}
等等。我想做的是:

或者

1.)包含所有页面的整个站点

2.)一个带有https的特定子页面,例如,无论您如何到达,name.org/page、www.name.org/page、内部链接等。重点是我需要通过SSL为该页面提供服务

目前,name.org会将您带到我的主页https。www.name.org没有。我可以转到我网站上的任何页面,然后在地址栏中输入该页面名称,如,它将使用绿色锁重新加载


我一直在寻找stackoverflow、nginx文档、godaddy(我在那里购买了我的证书)和其他我能想到的地方,搜索了几个小时却找不到任何东西,所以欢迎任何帮助。

更改您的第一个
服务器
块以包括
www
子域:

server {
    listen 80;
    server_name name.org www.name.org;
    return 301 https://www.name.org;
}

这将重定向两个
http://name.org
http://www.name.org
https://www.name.org
。完成后,您可以删除
listen80来自第二个
服务器
块,因为第一个块包含名称/端口组合,从那时起,您将只处理ssl版本。

这非常有效-非常感谢。我现在明白了为什么人们通常不这么做了,因为这确实减慢了我的网站速度。