立即注册  找回密码
 立即注册
CeraNetworksBGVM服务器主机交流会员请立即修改密码Sharktech防护
查看: 470|回复: 9

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

[复制链接]

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

[复制链接]

146

主题

188

回帖

1266

积分

金牌会员

积分
1266
akige

146

主题

188

回帖

1266

积分

金牌会员

积分
1266
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

完事。
回复

使用道具 举报

34

主题

111

回帖

940

积分

高级会员

积分
940
sunzetu

34

主题

111

回帖

940

积分

高级会员

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

使用道具 举报

23

主题

652

回帖

2217

积分

金牌会员

积分
2217
loti

23

主题

652

回帖

2217

积分

金牌会员

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

使用道具 举报

146

主题

188

回帖

1266

积分

金牌会员

积分
1266
akige 楼主

146

主题

188

回帖

1266

积分

金牌会员

积分
1266
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  类似百度那样
回复

使用道具 举报

3

主题

67

回帖

217

积分

中级会员

积分
217
march1993

3

主题

67

回帖

217

积分

中级会员

积分
217
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]复制代码
  • 回复

    使用道具 举报

    0

    主题

    680

    回帖

    2052

    积分

    金牌会员

    积分
    2052
    陈道临

    0

    主题

    680

    回帖

    2052

    积分

    金牌会员

    积分
    2052
    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


    分开写干嘛。。。
    回复

    使用道具 举报

    3

    主题

    67

    回帖

    217

    积分

    中级会员

    积分
    217
    march1993

    3

    主题

    67

    回帖

    217

    积分

    中级会员

    积分
    217
    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]复制代码
  • 回复

    使用道具 举报

    146

    主题

    188

    回帖

    1266

    积分

    金牌会员

    积分
    1266
    akige 楼主

    146

    主题

    188

    回帖

    1266

    积分

    金牌会员

    积分
    1266
    2018-5-1 21:44:36 | 显示全部楼层

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

    server_name 可以填多个,return 的时候会返回第一个
    两个 if 没法合并,nginx 不支持
    ...
    [ol]
  • server {
  •         listen 80 ;
  •         
  •         listen 443 ssl http2;
  •    
  •    
  •     index index.html index.htm index.php default.html default.htm default.php;
  •         
  •         server_name www.mysite.com mysite.com;
  •         
  •         if ($http_host != $server_name) {
  •         return 301 https://$server_name$request_uri;
  •         }
  •         if ($scheme = http) {
  •         return 301 https://$server_name$request_uri;
  •         }
  • }
  • server
  •     {
  •         listen 80;
  •         #listen [::]:80;
  •         server_name www.mysite.com mysite.com;
  •        # index index.html index.htm index.php default.html default.htm default.php;
  •         root  /home/wwwroot/www.mysite.com;
  •         
  •                 include rewrite/laravel.conf;
  •         #error_page   404   /404.html;
  •         # Deny access to PHP files in specific directory
  •         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
  •         include enable-php-pathinfo.conf;
  •         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  •         {
  •             expires      30d;
  •         }
  •         location ~ .*\.(js|css)?$
  •         {
  •             expires      12h;
  •         }
  •         location ~ /.well-known {
  •             allow all;
  •         }
  •         location ~ /\.
  •         {
  •             deny all;
  •         }
  •         access_log  /home/wwwlogs/www.mysite.com.log;
  •     }
  • server
  •     {
  •         listen 443 ssl http2;
  •         #listen [::]:443 ssl http2;
  •         server_name www.mysite.com ;
  •         index index.html index.htm index.php default.html default.htm default.php;
  •         root  /home/wwwroot/www.mysite.com;
  •         ssl on;
  •         ssl_certificate /usr/local/nginx/conf/ssl/www.mysite.com/fullchain.cer;
  •         ssl_certificate_key /usr/local/nginx/conf/ssl/www.mysite.com/www.mysite.com.key;
  •         ssl_session_timeout 5m;
  •         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  •         ssl_prefer_server_ciphers on;
  •         ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
  •         ssl_session_cache builtin:1000 shared:SSL:10m;
  •         # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
  •         ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
  •         include rewrite/laravel.conf;
  •         #error_page   404   /404.html;
  •         # Deny access to PHP files in specific directory
  •         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
  •         include enable-php-pathinfo.conf;
  •         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  •         {
  •             expires      30d;
  •         }
  •         location ~ .*\.(js|css)?$
  •         {
  •             expires      12h;
  •         }
  •         location ~ /.well-known {
  •             allow all;
  •         }
  •         location ~ /\.
  •         {
  •             deny all;
  •         }
  •         access_log  /home/wwwlogs/www.mysite.com.log;
  •     }
  • [/ol]复制代码

    报错:

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

    使用道具 举报

    0

    主题

    680

    回帖

    2052

    积分

    金牌会员

    积分
    2052
    陈道临

    0

    主题

    680

    回帖

    2052

    积分

    金牌会员

    积分
    2052
    2018-5-1 21:42:00 | 显示全部楼层

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

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

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

    使用道具 举报

    146

    主题

    188

    回帖

    1266

    积分

    金牌会员

    积分
    1266
    akige 楼主

    146

    主题

    188

    回帖

    1266

    积分

    金牌会员

    积分
    1266
    2018-5-1 21:56:37 | 显示全部楼层

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

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

    这一段写在listen 80  443 端口都要加吗?
    回复

    使用道具 举报

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

    本版积分规则

    Archiver|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2025-1-4 09:58 , Processed in 0.024269 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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