【问题标题】:How can I do a 301 redirect towards an URL ending in a slash with Nginx?如何使用 Nginx 对以斜杠结尾的 URL 进行 301 重定向?
【发布时间】:2022-01-22 23:59:56
【问题描述】:

我有一个 nginx 网络服务器,它代理将流量传递到我 LAN 上的不同服务。在最近更新其中一项服务后,重定向停止按预期工作。重定向背后的服务是Pi-Hole,所以我不能/不想修改网络服务的工作方式。我只想修复重定向。

我的实际 nginx 配置如下所示:

server {
  listen 80;
  listen [::]:80;
  server_name servername.xyz localhost default;

  access_log /var/log/nginx/servername-xyz.access.log;
  error_log /var/log/nginx/servername-xyz.error.log;

  location = /pihole {
    return 301 http://servername.xyz/pihole/admin;
  }

  location = /pihole/ {
    return 301 http://servername.xyz/pihole/admin;
  }

  location /pihole/ {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://127.0.0.1:31480/;
  }

  location = / {
    return 418;
  }
}

此配置运行良好。每次我在浏览器http://servername.xyz/pihole 中写入时,我都会自动重定向到http://servername.xyz/pihole/admin,并开始完美地使用 Pi-Hole 网络控制台。

在上次 Pi-Hole 更新中,他们做了一个小改动,破坏了重定向。现在,每次您请求 http://pi-hole.domain/admin 时,Web 控制台都会自动重定向到 http://pi-hole.domain/admin/注意第二个网址末尾的斜杠。

在我的配置中,这意味着以下行为:

  1. 我向浏览器询问http://servername.xyz/pihole
  2. 我收到301 并转到http://servername.xyz/pihole/admin
  3. 在这里,我从 Pi-Hole Web 控制台获得了一个出乎我意料的重定向,它使我转到:http://servername.xyz/admin/注意结尾的斜线。

当我进入第三步时,重定向不允许我进入 Pi-Hole Web 控制台。我已经尝试对规则进行一些更改,但我没有成功实现将301 指向http://servername.xyz/admin/ 以避免Pi-Hole Web 控制台重定向的目标。

【问题讨论】:

  • 使用curl -I http://servername.xyz/pihole/admin 识别HTTP Location 响应标头中的确切文本,然后使用proxy_redirect 进行更正。
  • 太棒了@RichardSmith!它有效!

标签: nginx redirect http-status-code-301


【解决方案1】:

非常感谢Richard's Smith 的评论。它让我修复了配置文件。现在文件中的proxy_pass 操作如下所示:

location /pihole/ {
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_pass http://127.0.0.1:31480/;
  proxy_redirect http://servername.xyz/admin/ http://servername.xyz/pihole/admin/;
}

在包含proxy_redirect 指令后,一切又开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    相关资源
    最近更新 更多