如何使用Url重写和IIS 8.5通过本地https代理从任何子域重写和重定向非安全图像URL?

问题描述:

我正在尝试重定向/重定向,并通过我域(使用IIS 8.5中的URL重写)托管的本地https代理传递所有仅限http(非安全)的图像URL。源不提供https,所以这是我唯一的解决方案(据我所知)。这是我的代码,它不工作。请帮助:如何使用Url重写和IIS 8.5通过本地https代理从任何子域重写和重定向非安全图像URL?

<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

不幸的是,我的正则表达式不是很好,我想知道我可能会在模式匹配上做错了什么。

任何帮助在这方面赞赏。

匹配节点中的url属性只匹配路径,而不匹配域。为了匹配主机,您将需要使用HTTP_HOST服务器变量。 This重写规则文档的一节给出了一个很好的解释。在这个页面上也有一些使用HTTP_HOST的例子,这个例子看起来和你想要实现的类似。