nginx 不强制 http 转为 https

nginx 不强制 http 转为 https

我有一个网站 groupsitedev.com。它不会强制网站始终使用 httpd。我已完成以下设置,但它仍然会从 http 加载一些链接。配置如下:

 server {
        listen *:80 default_server;
        if ($scheme = http) {
        return 301 https://$host$request_uri;
        }
    }

我也尝试过只使用 return 301 而不使用 if,下面是我收到的错误的屏幕截图

https://www.dropbox.com/s/mqqdbmwl4vf43qp/error.JPG?dl=0

但它仍然不会强制所有链接移至 https。

答案1

使用如果在 Nginx 块配置中。

以下配置会将所有请求重定向到 https

server {
    listen   80;
    server_name _;
    return 301 https://$server_name$request_uri;
}

答案2

您需要修复网站代码或配置上的链接。

站点配置可能有一个基本 URL 的设置,您需要确保https其中包含该设置。

如果没有这样的设置,那么您需要用 替换http://path/to/some/pic.jpg/path/to/some/pic.jpg然后您将使用用于请求页面本身的协议发出浏览器请求。

或者如果资源来自不同的域,那么您可以将其替换为//example.com/path/to/some/pic.jpg

相关内容