如何使用 NginX 进行 301 重定向而不添加端口号?

如何使用 NginX 进行 301 重定向而不添加端口号?

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

这是我的 nginx 配置:

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

它从以下 URL 重定向:

域名.com/data/dir1/...

到:

domain.com:8000/data/dir2/...

我怎样才能摆脱 URL 重定向中的 8000?

我的 tmp 解决方法是将 :80 放入重定向,但我担心这会影响 google 列出的 URL,因为它包含端口号。

答案1

您可以尝试以下方法吗:

server {
    listen       8000;
    location ~* ^/data/dir1/(.*)$ {
    return 301 http://example.com/data/dir2/$1;
}

相关内容