Nginx server_name 中的 Unicode 域名

The*_*org 5 nginx punycode

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

我试图像这样输入 server_name :

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

  location / {
    root /var/www/privat;
  }
}
Run Code Online (Sandbox Code Playgroud)

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

server_name "~^privatinstrukt(.+)r\.dk$";
Run Code Online (Sandbox Code Playgroud)

server_name "~^privatinstrukt(.*)r\.dk$";
Run Code Online (Sandbox Code Playgroud)

乃至

server_name "~^privat(.*)$";
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*rov 8

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

server_name xn--privatinstruktr-jub.dk;
Run Code Online (Sandbox Code Playgroud)

  • @Phil 不,[nginx 文档](http://nginx.org/en/docs/http/server_names.html#idn) 特别指出:“国际化域名(IDN)应该使用 ASCII 指定( Punycode)在 server_name 指令中的表示。” (2认同)