我们有以 server_name 作为下划线的 nginx 配置。如何从 http 重写为 https。
server {
server_name _;
rewrite ^/(.*) https://$server_name/$1 permanent;
}
这将返回错误http://_/未找到。有没有办法不在重写规则中给出域名。
答案1
设置一个 nginx 块来监听端口 80,以便将所有内容重定向到 https。将常用配置放在 443 块中。
server {
listen 80;
server_name _;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name _;
[....]
}
答案2
看来您的问题在于无法解析_
(这是成功重定向后出现“未找到”错误的主要原因),而不是 nginx 配置文件。为 建立自己的 TLD 区域_
,或者至少在 中添加一条记录/etc/hosts
。