Назад | Перейти на главную страницу

nginx переписывает URL-адрес вставки в запрос: экранирование

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

Вам нужно либо оставить http:// вне компонента пути, отключите его в своем приложении или просто добавьте http / https как один из компонентов пути и измените свое приложение, добавив двоеточие.