首页 > 解决方案 > 在 Nginx 中将某些 url 从 https 重定向到 http

问题描述

我有一个安装/启用了 ssl 的 Nginx 配置,一切正常,但我需要在某些 url 上禁用 https。我试图实现这一点,但我被困在 https 到 http 和返回之间的重定向循环中。请在下图中查看我的配置,任何帮助将不胜感激。

server {
   listen         80 default_server;
   listen    [::]:80 default_server;
   server_name    server_domain.com www.server_domain.com;
   root   /var/www/html/path_to_app_folder;
   index  index.php index.html index.htm;
   listen [::]:443 ssl ipv6only=on; # managed by Certbot
   listen 443 ssl; # managed by Certbot
   ssl_certificate /etc/letsencrypt/live/server_domain/fullchain.pem; # managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/server_domain/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

   location ~ ^(/prime.*) {
    #default_type text/html;
    #return 200 http://$server_name$request_uri;
      return 301 http://$server_name$request_uri;
   }

}

配置图像

标签: nginxssldrupal

解决方案


利用$scheme

if ($scheme = https) {
    return 301 http://$server_name$request_uri;
}

推荐阅读