【问题标题】:Unicode domain name in Nginx server_nameNginx server_name 中的 Unicode 域名
【发布时间】:2016-11-23 12:35:27
【问题描述】:

我正在尝试使用名为“privatinstruktør.dk”的域名设置服务器,但不断被重定向到默认的“欢迎使用 nginx”页面。

我尝试这样输入 server_name:

server {
  listen 80;
  server_name privatinstruktør.dk;

  location / {
    root /var/www/privat;
  }
}

但这没有用。所以我尝试使用正则表达式,例如:

server_name "~^privatinstrukt(.+)r\.dk$";

和

server_name "~^privatinstrukt(.*)r\.dk$";

甚至

server_name "~^privat(.*)$";

但一切都失败了,我被重定向到默认页面。有没有人提示如何解决这个问题?

【问题讨论】:

    标签: nginx punycode


    【解决方案1】:

    在nginx中配置使用punycode格式的Unicode域名:

    server_name xn--privatinstruktr-jub.dk;
    

    【讨论】:

    • 你真的需要两者吗?
    • @Phil 不,nginx docs 明确表示:“国际化域名 (IDN) 应在 server_name 指令中使用 ASCII (Punycode) 表示来指定。”
    【解决方案2】:

    仅使用Punycode 名称:

    server {
      listen 80;
      server_name xn--privatinstruktr-jub.dk;
    
      location / {
        root /var/www/privat;
      }
    }
    

    Nginx Docs 是这么说的:

    国际化域名 (IDN) 应在 server_name 指令中使用 ASCII (Punycode) 表示来指定

    【讨论】:

      猜你喜欢
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2015-07-21
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      相关资源
      最近更新 更多