【问题标题】:How to 301 redirect with NginX without adding port number?如何在不添加端口号的情况下使用 NginX 进行 301 重定向?
【发布时间】:2015-12-10 11:15:02
【问题描述】:

我需要使用 nginx 301 将整个目录的内容重定向到另一个目录。虽然我的配置有效,但不幸的是它也暴露了端口号。我想这是一个副作用,因为特定域的入站流量是通过 HAProxy ACL 规则处理到 8000 端口的,而 url 本身是端口 80。

这是我的 nginx 配置文件:

server {
    listen       8000;
    port_in_redirect off;
    location ~* ^/data/dir1/(.*)$ {
            return 301 /data/dir2/$1;
    }
    ...

它从 URL 重定向: domain.com/data/dir1/... 到: domain.com:8000/data/dir2/...

如何摆脱 URL 重定向中的 8000?

【问题讨论】:

  • 你试过return 301 http://domain.com/data/dir2/$1;吗?我猜在这种情况下,HAProxy 应该正确代理到 Nginx
  • 是的,这行得通。谢谢。
  • 不客气。我会将解决方案作为答案发布,以使问题完整。

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


【解决方案1】:

您可以使用不带端口号的绝对 URL:

return 301 http://domain.com/data/dir2/$1;

HAProxy 应该完成剩下的工作。

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 2018-12-13
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多