Nginx server_name中的Unicode域名

时间:2016-11-23 12:35:27

标签: nginx punycode

我正在尝试设置一个名为“privatinstruktør.dk”的域名服务器,但不断重定向到默认的“welcome to 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(.*)$";

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

2 个答案:

答案 0 :(得分:3)

尝试在nginx中配置Unicode域名及其punycode格式:

server_name privatinstruktør.dk xn--privatinstruktr-jub.dk;

答案 1 :(得分:2)

仅使用Punycode名称:

server {
  listen 80;
  server_name xn--privatinstruktr-jub.dk;

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

Nginx Docs说的是

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