#redirect #proxy #url-rewriting #url-rewrite-module #iis-8.5
#перенаправление #прокси #url-перезапись #url-rewrite-module #iis-8.5
Вопрос:
Я пытаюсь перенаправить / redirect и передать все URL-адреса изображений только http (небезопасные) через локальный https-прокси, размещенный в моем домене (используя URL Rewrite в IIS 8.5). Источник не предоставляет https, поэтому это мое единственное решение (насколько я знаю). Вот мой код, и он не работает. Пожалуйста, помогите:
<rule name="assets redirection" stopProcessing="false">
<match url="^(.*).example-differnt-domain.com" ignoreCase="false" />
<action type="Redirect" url="https://example.COM/p/?url={HTTP_HOST}/{R:0}"
appendQueryString="true" redirectType="Permanent" />
</rule>
Похоже, что он ничего не делает.
URL-адреса исходных изображений представлены в следующем формате
http://subdomain1.subdomain2.example-different-domain.com/xyz/abc/lmnop.jpg
Могут быть и другие типы изображений
Я хочу переписать URL, чтобы он выглядел следующим образом: https://example.COM/p/?url=http://subdomain1.subdomain2.example-different-domain.com/xyz/abc/lmnop.jpg
К сожалению, мое регулярное выражение не очень хорошее, и мне интересно, что я, возможно, делаю что-то не так с сопоставлением шаблонов.
В этом отношении приветствуется любая помощь.
Ответ №1:
Атрибут url в узле сопоставления соответствует только пути, а не домену. Для того, чтобы соответствовать хосту, вам нужно будет использовать переменную сервера HTTP_HOST. В этом разделе документации по правилам перезаписи дается хорошее объяснение этого. На этой странице также есть пара примеров, в которых используется HTTP_HOST, что похоже на то, чего вы пытаетесь достичь.