Linux

Nginx 用 Server_name 作為下劃線重寫

  • December 12, 2018

我們有帶有 server_name 作為下劃線的 nginx 配置。如何從 http 重寫為 https。

server {
server_name _;
rewrite ^/(.*) https://$server_name/$1 permanent;
}

這將返回錯誤,因為http://_/未找到。在重寫規則中不提供域名的任何方式。

設置一個 nginx 塊以偵聽埠 80 以將所有內容重定向到 https。將通常的配置放在 443 塊中。

server {
  listen         80;
  server_name    _;
  return         301 https://$server_name$request_uri;
}
server {
  listen         443 ssl;
  server_name    _;

  [....]
}

似乎您的問題在於無法解決_(這是在 susssful 重定向後出現“未找到”錯誤的主要原因),而不是在 nginx 配置文件中。為 . 建立您自己的 TLD 區域_,或至少在/etc/hosts.

引用自:https://serverfault.com/questions/666951