Linux

如何使用 Nginx 從 http(s)://(www.)example.com 重定向到 https://example.com

  • April 15, 2016

正如標題所述。

我發現了另一個有用的 Q/A,但它沒有顯示如何在 Nginx 設置中正確執行,我的意思是parameters. 他可能的意思是https://exmaple.com在被重定向到 之前應該有一個有效的握手https://www.example.com。在我的場景中https://www.example.com效果很好,但https:example.com不能重定向到https://www.example.com.

server {
   listen 80;
   server_name example.com www.example.com;
   rewrite ^ https://example.com$request_uri? permanent;
}

server {
   listen 443;
   server_name example.com;

   ssl on;
   # some other settings, correctly

}

但是,它在瀏覽http://example.com時被重定向到,https://example.com但它以 chrome 顯示

This site can’t be reached 
example.com unexpectedly closed the connection.
ERR_CONNECTION_CLOSED```

我想全部重定向到https://example.com,如何?

  • 更新 -

/var/log/nginx/access.log節目_

"GET / HTTP/2.0" 301 216 "-" 

沒有錯誤/var/log/nginx/error.log

非常感謝!!!

所以你想將所有流量重定向到https://www.example.com

我認為您在listen 443 ssl中缺少****ssl指令;

請參閱下面的範例

使用 HTTPS 的主要配置 - www.example.com

server {
   listen 443 ssl;
   server_name www.example.com;
   ssl_certificate /path/ssl.crt
   other ssl config....
}

將 HTTPS 裸域重定向到 WWW

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

重定向所有 HTTP

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

引用自:https://serverfault.com/questions/770505