Nginx

將 http 子域重定向到 https

  • September 19, 2016

我正在嘗試將所有請求從http://blog.example.org>重定向到<https://blog.example.org

不幸的是,我收到此錯誤:

400 Bad Request The plain HTTP request was sent to HTTPS port

我的配置:

server {
   listen      80;
   server_name blog.example.org;
   return 301 https://$host$request_uri$is_args$args;
}


server {
   server_name blog.example.org;
   listen 443 ssl http2;

   root /srv/www/wordpress;
   index index.php index.html index.htm;

您的退貨聲明不正確。你應該有:

return 301 https://$server_name$request_uri;

我不完全確定,但我認為這裡使用$is_argsand$args是錯誤的,因為它$request_uri包含完整的請求字元串(帶參數的完整 URI 路徑)。你試過沒有這些嗎?例如:

server {
   listen 80;
   server_name blog.example.org;
   return 301 https://$host$request_uri;
}

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