我想在 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 服务器名称选择顺序为:
- 确切名称
- 带有前导通配符的最长名称
- 带有尾随通配符的最长名称
- 第一个匹配的正则表达式