将 IP 地址重定向到 https

将 IP 地址重定向到 https

我正在使用 Ubuntu 和 Nginx。

我的网站受 SSL 保护托管。

如果我在浏览器中输入“https”中没有“s”的域名,则会重定向到“https”。但如果我输入域名的 IP 地址,它不会重定向到“https”。它只会显示在地址栏中“http://xxx.xxx.xxx.xxx”

我是这样想的:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

可以解决这个问题,买它不可以。

你的新手...

答案1

尝试使用 IP 地址作为 server_name 创建另一个服务器部分 - 您最好使服务器名称也明确表示您的域名(而不是 _)。然后从新服务器部分(IP 地址)重定向到域名(与端口 80 执行的操作相同)。

例如:

server {
    server_name 12.34.56.178;

    listen 80;
    listen 443 ssl;
    listen [::]:80;
    listen [::]:443 ssl;

    return 301 https://example.com;
}

...并且不要忘记重新启动 nginxsystemctl restart nginx

您是否尝试过这样并重新启动浏览器来测试它?当存在浏览器缓存时,有时很难调试内容。因此我更喜欢使用wget -O- http://12.34.56.78orcurl -o- http://12.34.56.78进行测试。

相关内容