找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 44|回复: 8

怎么把https://xxx.com 重定向到https://www.xxx.com

[复制链接]

34

主题

368

回帖

880

积分

高级会员

积分
880
发表于 2018-11-28 18:51:58 | 显示全部楼层 |阅读模式
server {

........

listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

server {
  if ($host != www.example.com) {
        return 301 https://www.example.com$request_uri;
    }

  if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen       80;
    server_name  www.example.com example.com;
    return 404; # managed by Certbot

}

cerbot 开启了HSTS(我不知道怎么关闭)
自己加了句
if ($host != www.example.com) {
        return 301 https://www.example.com$request_uri;
    }

但是这样以后发现 https://example.com 无法重定向到https://www.example.com

谢谢各位大佬,求指点
回复

使用道具 举报

34

主题

368

回帖

880

积分

高级会员

积分
880
 楼主| 发表于 2018-11-28 18:55:18 | 显示全部楼层

jimi 发表于 2018-11-28 18:55

你没有listen 443吧

listen 443 ssl; # managed by Certbot
cerbot自己设置到前面的server里的
回复

使用道具 举报

3

主题

1785

回帖

3655

积分

论坛元老

积分
3655
发表于 2018-11-28 18:56:59 | 显示全部楼层
[ol]
  • server {
  •   listen 80;
  •   listen [::]:80;
  •   listen 443 ssl http2;
  •   listen [::]:443 ssl http2;
  •   #ECC
  •   ssl_certificate /usr/local/nginx/conf/ssl/nyaa.uk_ECC.crt;
  •   ssl_certificate_key /usr/local/nginx/conf/ssl/nyaa.uk_ECC.key;
  •   #RSA
  •   ssl_certificate /usr/local/nginx/conf/ssl/nyaa.uk_RSA.crt;
  •   ssl_certificate_key /usr/local/nginx/conf/ssl/nyaa.uk_RSA.key;
  •   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  •   ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS;
  •   ssl_prefer_server_ciphers on;
  •   ssl_session_timeout 1d;
  •   ssl_session_cache shared:SSL:50m;
  •   ssl_session_tickets off;
  •   ssl_buffer_size 1400;
  •   add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
  •   ssl_stapling on;
  •   ssl_stapling_verify on;
  •   server_name nyaa.uk www.nyaa.uk;
  •   access_log /home/wwwlogs/nyaa.uk_nginx.log combined;
  •   #index index.html index.htm index.php;
  •   #root /home/wwwroot/nyaa.uk;
  •   if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  •   if ($host != nyaa.uk) {  return 301 $scheme://nyaa.uk$request_uri;  }
  •   #include /usr/local/nginx/conf/rewrite/none.conf;
  •   #error_page 404 /404.html;
  •   #error_page 502 /502.html;
  •   location / {
  •     sub_filter_types text/css text/xml application/xhtml+xml application/xml;
  •     sub_filter nyaa.si nyaa.uk;
  •     sub_filter_once off;
  •     proxy_set_header X-Real-IP $remote_addr;
  •     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  •     proxy_set_header Referer https://nyaa.si;
  •     proxy_set_header Host nyaa.si;
  •     proxy_pass https://nyaa.si;
  •     proxy_set_header Accept-Encoding "";
  •   }
  • }[/ol]复制代码

    看着改
  • 回复

    使用道具 举报

    313

    主题

    4849

    回帖

    1万

    积分

    论坛元老

    积分
    10795
    发表于 2018-11-28 18:55:00 | 显示全部楼层
    server {
        listen 80;
        server_name XXX.com www.XXX.com;
        return 301 https://www.XXX.com$request_uri;
    }
    server {
        listen 443 ssl;
        ssl_certificate  /home/ssl/www.XXX.com/www.XXX.com.crt;
        ssl_certificate_key  /home/ssl/www.XXX.com/www.XXX.com.pem;
        server_name XXX.com;
        return 301 https://www.XXX.com$request_uri;
    }
    server
        {
    listen 443 ssl http2;
    ssl on;
    ssl_certificate  /home/ssl/www.XXX.com/www.XXX.com.crt;
    ssl_certificate_key  /home/ssl/www.XXX.com/www.XXX.com.pem;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
            #listen [::]:80;
            server_name www.XXX.com;
            index index.html index.htm index.php default.html default.htm default.php;
            root  /home/wwwroot/www.XXX.com;
    此处省略..
    }

    回复

    使用道具 举报

    366

    主题

    7835

    回帖

    1万

    积分

    论坛元老

    积分
    16850
    发表于 2018-11-28 18:58:39 | 显示全部楼层
    本帖最后由 斜阳晚暮 于 2018-11-28 19:03 编辑
    [ol]
  • server
  •     {
  •         listen 443;
  •         server_name  xxx.com;
  •         index index.html index.htm index.php default.html default.htm default.phpp;
  •         root  /home/wwwroot/xxx;
  •         ssl on;
  •         ssl_certificate /home/www/xxx.crt;    #生成的证书
  •         ssl_certificate_key /home/www/xxx.key;    #生成的密钥
  •         ssl_session_cache shared:SSL:10m;
  •         ssl_session_timeout 10m;
  •         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  •         ssl_stapling on;
  •         ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";
  •         ssl_prefer_server_ciphers on;
  •         rewrite ^(.*)$ https:/www.xxx.com$1 permanent;
  •     }
  • server
  •     {
  •         listen 80;
  •         server_name xxx.com www.xxx.com;
  •         rewrite ^(.*)$ https://www.xxx.com$1 permanent;
  •    }
  • [/ol]复制代码

  • 回复

    使用道具 举报

    28

    主题

    290

    回帖

    680

    积分

    高级会员

    积分
    680
    发表于 2018-11-28 18:59:10 | 显示全部楼层
    http://nginx.org/en/docs/http/converting_rewrite_rules.html
    回复

    使用道具 举报

    50

    主题

    333

    回帖

    860

    积分

    高级会员

    积分
    860
    发表于 2018-11-28 19:01:39 | 显示全部楼层
    nginx的话301 重定向
    回复

    使用道具 举报

    176

    主题

    1320

    回帖

    3296

    积分

    论坛元老

    积分
    3296
    发表于 2018-11-28 19:02:32 | 显示全部楼层
    抛开 软件环境 谈效果。。哎呀!

    如果你跑 apache ,就上套了!
    回复

    使用道具 举报

    0

    主题

    1

    回帖

    4

    积分

    新手上路

    积分
    4
    发表于 2018-11-28 19:03:07 | 显示全部楼层

    zc035 发表于 2018-11-28 19:04

    抛开 软件环境 谈效果。。哎呀!

    如果你跑 apache ,就上套了!

    用的 nginx  给cerbot自动设置的.conf绕晕了
    mischief 发表于 2018-11-28 19:11

    用的 nginx  给cerbot自动设置的.conf绕晕了

    语法没错,加的位置错了而已!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-4-20 03:40 , Processed in 0.020696 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表