nginx 通配符重定向可疑符号警告

nginx 通配符重定向可疑符号警告

我想在 nginx 上创建一个 301 重定向来执行以下操作:

*.example.gr/en/* => http://www.example.gr/el/

我曾尝试做过以下事情:

server{
listen       80;
server_name  ~^.example.gr/en/*;
return       301 http://www.example.gr/el/;
}

但我找不到合适的通配符正则表达式来添加到server_name服务器块中,因为"/en"我收到可疑符号警告

答案1

您不会匹配 server_name 指令中的 URI,因为它是...用于服务器名称。

server {

    listen 80;
    server_name *.example.gr;

    location /en {
        return 301 http://www.example.gr/el/;
    }

}


server {

    listen 80;
    server_name www.example.gr;

    location /el {
        # Your stuff
    }

}

作为记录,Nginx 服务器名称选择顺序为:

  1. 确切名称
  2. 带有前导通配符的最长名称
  3. 带有尾随通配符的最长名称
  4. 第一个匹配的正则表达式

相关内容