nginx 出现以下所有重定向问题

nginx 出现以下所有重定向问题

我在 /etc/nginx/redirect.conf 文件中有两个重定向:

rewrite /this-link https://www.google.com redirect;
rewrite /this-link-too https://mail.google.com redirect;

尝试前往http://www.example.com/此链接或者http://www.example.com/this-link-too都去https://www.google.com

有没有办法强制精确匹配?

以下为示例配置:

server {
listen 80;

server_name www.example.com;

index index.html;

error_page 404 http://www.example.com/error.html;

location / {
  try_files $uri @redirect;
}

location @redirect {
  include /etc/nginx/redirect.conf;
}

答案1

rewrite指令接受一个正则表达式,因此/this-link-too匹配/this-link,因此您的第一个重写总是会被使用。Rewrite除非您确实需要匹配正则表达式或进行替换,否则应该避免。

您应该考虑使用完全location匹配return

例如:

location = /this-link {
    return 302 https://www.google.com/;
}

相关内容