Redirect nginx重定向到新域

Redirect nginx重定向到新域,redirect,nginx,Redirect,Nginx,我有几个旧域,我正在重定向到一个新域(合并),无论如何,旧域和新域都有一个可预测的结构,所以我做了这个 server { listen 80; server_name .oldomain.com; return 301 http://newdomain.com/foo$request_uri?; } 这会处理我所有的重定向,除非有人输入了裸地址。在这种情况下,他们得到一个404,因为它重定向到/foo/而那里什么都没有 是否有办法解决此问题?将默

我有几个旧域,我正在重定向到一个新域(合并),无论如何,旧域和新域都有一个可预测的结构,所以我做了这个

server {
        listen 80;
        server_name .oldomain.com;
        return 301 http://newdomain.com/foo$request_uri?;
}
这会处理我所有的重定向,除非有人输入了裸地址。在这种情况下,他们得到一个404,因为它重定向到/foo/而那里什么都没有


是否有办法解决此问题?

将默认大小写放入
位置/
块中,然后可以显式指定边缘大小写。例如:

server {
    listen 80;
    server_name .oldomain.com;

    location / {
        return 301 http://newdomain.com/foo$request_uri;
    }
    location = / {
        return 301 http://newdomain.com/my/default/path.html;
    }
}

有关
位置
语法和处理顺序的详细信息,请参阅。

将默认大小写放入
位置/
块中,然后可以显式指定边缘大小写。例如:

server {
    listen 80;
    server_name .oldomain.com;

    location / {
        return 301 http://newdomain.com/foo$request_uri;
    }
    location = / {
        return 301 http://newdomain.com/my/default/path.html;
    }
}

有关
位置
语法和处理顺序的详细信息,请参阅。

我明白你的意思,但我不明白=符号的意义以及它指向不同位置的方式,而不仅仅是/@deltaskelta添加了对文档的引用,这应该会有所帮助。我明白你的意思,但是我不知道=符号的意义,也不知道它指向的是一个不同的位置,而不仅仅是/@deltaskelta添加了对文档的引用,这应该会有所帮助。