NGINX重写2个地址到相同的目的地

我正在寻找重写2个不同的地址到相同的目的地址。 有没有可能做这样的事情?

location = /foo/bar/, /to/fu/ { return 301 /re/bar/; } 

或者我必须创build两个单独的redirect?

 location = /foo/bar/ { return 301 /re/bar/; } 

 location = /to/fu/ { return 301 /re/bar/; } 

虽然你可以通过使用正则expression式而不是位置path来做到这一点,但我不推荐它。 你最终会得到一个很复杂的configuration文件,这使得它很难维护。

我可能会删除位置条目,而是使用多个重写,因为这会给我一个更好的概述,像这样:

 server_name_in_redirect on; rewrite /foo/bar/ /re/bar/ permanent; rewrite /to/fu/ /re/bar/ permanent; 

在我看来,这可以很容易地看到你正在使用的redirect以及如何添加更多的redirect。 但是这是非常个人的喜好,并且使用位置并没有错!

罚款手册表明,逗号分隔多个URI是不允许的,你将不得不使用两个单独的块,或做一个正则expression式匹配。