Nginx 使用 Server_name 作为下划线进行重写

Nginx 使用 Server_name 作为下划线进行重写

我们有以 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

相关内容