nginx rewrite вставить 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
1
задан 17 March 2017 в 16:15
1 ответ

Компонент path в URL не может содержать двоеточия в неизмененном виде, поэтому nginx экранирует его. Единственное действительное место для двоеточия - это отделить часть URL, посвященную протоколу и домену или пользователю/домену.

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

.
1
ответ дан 3 December 2019 в 23:32

Теги

Похожие вопросы