嗨,我想要一个重写规则,但我不想redirect它,请求一个URL,但从另一个URL加载不同的内容。 所以,我认为最后和重写指令中的标志是一个很好的解决scheme。 但是,它总是redirect,我search这个问题,他们声明,如果新的URL不是来自nginx实例,它将redirect。 这里有几行我的configuration:
... rewrite ^(/\w+/$)(.+\.php) /$2 last; proxy_pass upstream_name:80; ...
我问的是我如何使用重写,但不redirect?
更新:例如,我想创build一个新的像/ link / asd,但是在我的web应用程序中没有/ link / asd。 我希望我的/链接/ asd链接从/ asd链接加载资源。 那么,我认为重写最后的旗帜是一个很好的解决scheme。 如果我的理解是错误的,请纠正我的解释。 谢谢
如果你想完全重写/link/example /example ,其中的example是任何东西,你可以使用这个rewrite :
rewrite ^/link/(.+)$ /$1 last;
这也匹配/link/example/something/else ,因为.+匹配string( $ )之前的任何字符。 如果要限制捕获组中允许使用哪些字符,例如,从捕获组中排除/可以使用[^/]+符号表示正则expression式。