nginx重写问题,为什么它只替换一个匹配的字符串?

nginx重写问题,为什么它只替换一个匹配的字符串?,nginx,rewrite,Nginx,Rewrite,我想通过Nginx的rewrite指令替换我的url。例如,客户端请求,我想让Nginx将url重写为 我的Nginx配置如下: rewrite(.*)用户(.*)$1个人$2 但我发现Nginx将url更改为../user/person\u id/ 有没有人能告诉我如何通过重写指令将用户更改为个人?您所说的这种情况可以简单地解决: rewrite ^/user/user_id/(.*)$ /person/person_id/$1 ; 假设user和person的第一个实例是常量,并且第二个项

我想通过Nginx的rewrite指令替换我的url。例如,客户端请求,我想让Nginx将url重写为

我的Nginx配置如下:
rewrite(.*)用户(.*)$1个人$2

但我发现Nginx将url更改为../user/person\u id/


有没有人能告诉我如何通过重写指令将
用户
更改为
个人

您所说的这种情况可以简单地解决:

rewrite ^/user/user_id/(.*)$ /person/person_id/$1 ;

假设
user
person
的第一个实例是常量,并且第二个项目后面总是有一个斜杠,您可以尝试:

rewrite ^/user/user_([^/]+)/(.*)$ /person/person_$1/$2 ;

不,这只是一个url模式,还有其他url模式,如/user/user\u activity/、/user/get\u user\u…/Show full server configuration,可以覆盖大多数情况,但仍有一些url模式无法覆盖。我最终直接在我的应用程序代码中更改了我的url配置。无论如何,谢谢@dayoi如果您添加了有问题的url模式,可以查看它们。。。虽然我注意到你有工作要做。