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

时间:2015-01-28 08:21:48

标签: nginx rewrite

我想通过Nginx的重写指令替换我的网址。例如,客户端请求http://127.0.0.1/user/user_id/,我想让Nginx 重写网址为http://127.0.0.1/person/person_id/

我的Nginx配置是这样的: rewrite (.*)user(.*) $1person$2;

但我知道Nginx将网址更改为 ... / user / person_id /

有人可以告诉我如何通过重写指令将user更改为person吗?

2 个答案:

答案 0 :(得分:0)

你正在谈论的这个案例可以简单解决:

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

答案 1 :(得分:0)

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

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