我有以下服务器配置:
server {
listen 80;
server_name default;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name default;
root /home/forge/default/public;
... and so it continues
我还有两个域名,test.com
和example.com
。它们都指向服务器的 IP 地址。如果我转到test.com
,它会被重定向到 https,但如果我转到example.com
,它会被重定向到的 https 版本,test.com
而不是的 https 版本example.com
。为什么会发生这种情况?我对服务器配置很陌生。在其他 Server Fault 答案中,我只发现使用变量,$host
但它似乎不起作用。
答案1
我刚刚遇到了同样的问题,确实是浏览器缓存的问题!
需要注意的是:检查重定向的最佳解决方案之一(未缓存)是curl
从命令行到服务器:
curl -I http://my-server.com
关于浏览器缓存,清除整个缓存 -刷新你的缓存网站- 可以,但有点过头了!确保浏览器不使用缓存的另一种方法是请求略有不同的 URL,即:
http://my-server.com?randomString
我读完后想引用的另一点server_name nginx 文档:感觉接受多个域名的推荐方式是使用空的 server_name""
而不是default
,即对于您的配置示例:
server {
listen 80;
server_name "";
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name "";
root /home/forge/default/public;
... and so it continues
但是,如果我错了,请纠正我!:)