Как переписать и перенаправить небезопасные URL-адреса изображений с любого поддомена через локальный https-прокси, используя Url rewrite и IIS 8.5?

#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, что похоже на то, чего вы пытаетесь достичь.