查看: 364|回复: 20

http强制跳到 https带www nginx配置问题,大佬看下哪的问题

[复制链接]

151

主题

337

回帖

1219

积分

金牌会员

积分
1219
发表于 2018-5-1 21:16:04 | 显示全部楼层 |阅读模式
本帖最后由 akige 于 2018-5-1 21:20 编辑

配置如下 ssl的就不放出来了。没问题。
这样写看着没错啊?,就是跳不过去。

server {
    listen       80;
    server_name  aaa.com;
    return       301 https://www.aaa.com$request_uri;
}

server {
    listen       80;
    server_name  www.aaa.com;
     
    return       301 https://www.aaa.com$request_uri;
}

server {
    listen       443;
    server_name  aaa.com;
    return       301 https://www.aaa.com$request_uri;
}

我的需求就是
1.   xxx.com/a.html   跳到  https://www.xxx.com/a.html

2.   www.xxx.com/a.html   跳到  https://www.xxx.com/a.html

3.   https://xxx.com/a.html   跳到  https://www.xxx.com/a.html

完事。
回复

使用道具 举报

4

主题

107

回帖

258

积分

中级会员

积分
258
发表于 2018-5-1 21:20:00 | 显示全部楼层
本帖最后由 march1993 于 2018-5-1 21:34 编辑

server_name 可以填多个,return 的时候会返回第一个
两个 if 没法合并,nginx 不支持
[ol]
  • listen 80 default_server default_server;
  • listen 443 ssl default_server default_server;
  • server_name www.xxx.com xxx.com yyy.com;
  • if ($http_host != $server_name) {
  •         return 301 https://$server_name$request_uri;
  • }
  • if ($scheme = http) {
  •         return 301 https://$server_name$request_uri;
  • }[/ol]复制代码
  • 回复

    使用道具 举报

    32

    主题

    1083

    回帖

    2378

    积分

    金牌会员

    积分
    2378
    发表于 2018-5-1 21:20:30 | 显示全部楼层
    https://liyuans.com/archives/http-automatic-jump-https.html
    看看这个
    回复

    使用道具 举报

    151

    主题

    337

    回帖

    1219

    积分

    金牌会员

    积分
    1219
     楼主| 发表于 2018-5-1 21:23:46 | 显示全部楼层

    loti 发表于 2018-5-1 21:20

    https://liyuans.com/archives/http-automatic-jump-https.html
    看看这个


    http跳转到https我会。但是有这样一个问题。 aaa.com会跳转到 https://aaa.com  我需要统一https://www.aaa.com  类似百度那样
    回复

    使用道具 举报

    6

    主题

    1925

    回帖

    4004

    积分

    论坛元老

    积分
    4004
    发表于 2018-5-1 21:29:00 | 显示全部楼层
    server {
      listen 80;
      listen [::]:80;
      listen 443 ssl http2;
      listen [::]:443 ssl http2;
      server_name www.baidu.com baidu.com;
      if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
      if ($host != www.baidu.com) {  return 301 $scheme://www.baidu.com$request_uri;

    这样写一个server块就够了 看着舒服

    回复

    使用道具 举报

    6

    主题

    1925

    回帖

    4004

    积分

    论坛元老

    积分
    4004
    发表于 2018-5-1 21:29:05 | 显示全部楼层
    server_name baidu.com www.baidu.com;
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
    if ($host != baidu.com) {  return 301 $scheme://baidu.com$request_uri;  }
    www到no www

    server_name www.baidu.com baidu.com;
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
    if ($host != www.baidu.com) {  return 301 $scheme://www.baidu.com$request_uri;
    no www到www


    分开写干嘛。。。
    回复

    使用道具 举报

    139

    主题

    656

    回帖

    1815

    积分

    金牌会员

    积分
    1815
    发表于 2018-5-1 21:30:52 | 显示全部楼层
    rewrite ^/(.*)$ https://www.xxx.com/$1 permanent;
    回复

    使用道具 举报

    6

    主题

    1925

    回帖

    4004

    积分

    论坛元老

    积分
    4004
    发表于 2018-5-1 21:42:00 | 显示全部楼层

    march1993 发表于 2018-5-1 21:44

    你这个如果是   会 301 两次的吧? 第一次到  第二次到

    分开用return 301 https://www.baidu.com$request_uri;也行啊
    回复

    使用道具 举报

    4

    主题

    107

    回帖

    258

    积分

    中级会员

    积分
    258
    发表于 2018-5-1 21:42:30 | 显示全部楼层

    陈道临 发表于 2018-5-1 21:42

    server_name baidu.com www.baidu.com;
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; ...

    你这个如果是 [ol]
  • http://baidu.com[/ol]复制代码会 301 两次的吧? 第一次到[ol]
  • https://baidu.com[/ol]复制代码第二次到[ol]
  • https://www.baidu.com[/ol]复制代码
  • 回复

    使用道具 举报

    151

    主题

    337

    回帖

    1219

    积分

    金牌会员

    积分
    1219
     楼主| 发表于 2018-5-1 21:44:00 | 显示全部楼层
    本帖最后由 akige 于 2018-5-1 22:19 编辑

    march1993 发表于 2018-5-1 22:07


    大佬 按照你的测试  还是不行:

    Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    nginx -s reload 有做
    回复

    使用道具 举报

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

    本版积分规则

    关注公众号

    相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖
    关注公众号
    返回顶部