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

Redirect 如何使用NginX进行301重定向而不添加端口号?,redirect,nginx,http-status-code-301,Redirect,Nginx,Http Status Code 301,我需要使用nginx将整个目录的内容重定向到另一个目录。当我的配置工作时,不幸的是它还公开了端口号。我想这是一个副作用,因为特定域的入站流量是通过HAProxy ACL规则处理到8000端口的,而url本身是端口80 这是我的nginx配置: server { listen 8000; port_in_redirect off; location ~* ^/data/dir1/(.*)$ { return 301 /data/dir2/

我需要使用nginx将整个目录的内容重定向到另一个目录。当我的配置工作时,不幸的是它还公开了端口号。我想这是一个副作用,因为特定域的入站流量是通过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?

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

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

HAProxy应完成其余工作。

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

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

HAProxy应该做剩下的。

你试过返回301了吗http://domain.com/data/dir2/$1;?我想HAProxy应该在这种情况下正确地代理Nginx是的,这很有效。谢谢,不客气。我会把答案贴出来,让问题完整。你试过返回301了吗http://domain.com/data/dir2/$1;?我想HAProxy应该在这种情况下正确地代理Nginx是的,这很有效。谢谢,不客气。我会把答案贴出来,让问题完整。