我想重写一个URL使用重写。 我想插入一个URL到请求的URI但是:这是http:的一部分正在越狱,我的应用程序永远不会得到正确的URL。 如何在重写时防止转义?
rewrite /(.*)url(.*) /$1http://example.com$2 break;
导致;
/abc/http%3A//example.com/myfile.html
而应该是;
/abc/http://example.com/myfile.html
URL的path组件不能以非转义forms包含冒号,这就是nginx转义它的原因。 冒号的唯一有效位置是将URL的协议和域或用户/域部分分开。
您需要将http://保留在path组件中,不要将其放在应用程序中,要么将http / https添加为path中的一个组件,然后更改应用程序以添加冒号。