Я пытаюсь переписать 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
Компонент path в URL не может содержать двоеточия в неизмененном виде, поэтому nginx экранирует его. Единственное действительное место для двоеточия - это отделить часть URL, посвященную протоколу и домену или пользователю/домену.
Вам нужно либо оставить http://
в компоненте пути, распечатать его в вашем приложении, либо просто добавить http
/ https
в качестве одного компонента в пути и изменить ваше приложение, чтобы оно добавило двоеточие.