Certbot配置Let's Encrypt证书后Nginx HTTP访问404无法跳转HTTPS
Nginx HTTP访问返回404无法重定向HTTPS解决方案
问题根因
你当前80端口的server块仅对www.deussearch.fr的HTTP请求做了重定向逻辑,deussearch.fr的HTTP请求会直接匹配到最后的return 404规则,所以出现HTTP访问404、无法全部重定向到HTTPS的问题。
解决步骤
- 第一步:修改sites-available目录下对应的Nginx配置文件,将原有80端口的server块替换为如下内容:
server { listen 80; listen [::]:80; server_name deussearch.fr www.deussearch.fr; # 所有HTTP请求统一301重定向到对应HTTPS地址 return 301 https://$host$request_uri; }
如果需要统一域名格式,比如所有请求都跳转到带www的HTTPS地址,可将重定向规则修改为:return 301 https://www.deussearch.fr$request_uri;
- 第二步:执行命令校验Nginx配置语法是否正确:
sudo nginx -t
返回结果包含syntax is ok和test is successful则代表配置无错误。 - 第三步:执行命令重载Nginx使配置生效:
sudo systemctl reload nginx - 第四步:清理浏览器缓存后重新访问HTTP站点,即可正常重定向到HTTPS。
内容的提问来源于stack exchange,提问作者Nicolas Gruwe
相关产品推荐
相关产品推荐

