NGINX:仅重写特定(变量)路径

NGINX:仅重写特定(变量)路径

我想重写一个包含特定变量路径的url,仅适用于一个特定的用户ip。

http://domain.com/variable

应变为:

http://domain.com/variable/system

但是,如果 /variable 路径后面还有另一条路径,则该路径应保持不变。因此,以下 URL 应保持不变:

http:/domain.com/variable/something-else

我已经尝试过以下代码

 if ($http_x_forwarded_for = xxx.xxx.x.xx) {         
           rewrite ^/(.*)$ http://domain.com/$1/system redirect;
 }

然而,运行此代码时似乎出现一个循环,导致

http://domain.com/variable/system/system/system/system ....

我知道出了什么问题,但我不知道如何轻松/正确地修复它。任何帮助都将不胜感激。

答案1

您也(.*)捕获了该/字符。您需要将其排除以防止循环。

尝试:

rewrite ^(/[^/]+)$ $1/system redirect;

这一有用的资源关于正则表达式。

相关内容