Nginx配置Https重定向 Chrome跳转到%2a.xxx.com的问题

今天配置Nginx的Https证书遇到了一个坑。

一般配置好证书后,都会配置一下https的重定向,让一般的http访问跳转到https访问去。

简单配置如下:

server {
    listen 80;
    server_name www.sxsc.ltd sxsc.ltd stest.sxsc.ltd;
    return      301 https://$server_name$request_uri; 
}

配置好后,用chrome访问 www.sxsc.ltd 时,会莫名其妙跳转到 https://%2A.sxsc.ltd/。

我删除上面 www.sxsc.ltd的重定向配置后,重启nginx, 访问 www.sxsc.ltd 问题依旧。

我都把重定向的配置删掉了,为什么还是会重定向呢? 首先考虑是其他配置影响的,查看了nginx启动加载的所有配置文件,发现并没有相关配置影响。

于是考虑是否是nginx进程缓存了之前的配置,杀掉所有nginx进程后,问题还是存在。奇了怪了,为什么还会跳转呢?突然想到是不是浏览器的原因呢?

换火狐,访问 www.sxsc.ltd 发现不再跳转到 https://%2A.sxsc.ltd。

问题找到了,就是chrome可能会记录用户的重定向历史。

通过这个小问题,总结一点经验:

当遇到url重定向问题时,首先考虑是不是服务器端配置影响的,如果不是,立马换一个浏览器,考虑客户端的问题。