Image 当调用特定文件夹时,IIS是否可以修改URI?

Image 当调用特定文件夹时,IIS是否可以修改URI?,image,iis,mod-rewrite,redirect,uri,Image,Iis,Mod Rewrite,Redirect,Uri,我有一个.NET应用程序,在/images/文件夹中包含500多个图像。在我的表示层中,我使用相对路径引用这些图像 <img src="/images/testimage.png" /> 我现在想将这些图像从Azure blob存储容器中移动。因此,我的新路径需要显式定义资源的完整URI <img src="https://myarea.blob.core.windows.net/images/testimage.png" /> 我正要在站点范围内进行查找替换

我有一个.NET应用程序,在/images/文件夹中包含500多个图像。在我的表示层中,我使用相对路径引用这些图像

<img src="/images/testimage.png" />

我现在想将这些图像从Azure blob存储容器中移动。因此,我的新路径需要显式定义资源的完整URI

<img src="https://myarea.blob.core.windows.net/images/testimage.png" />

我正要在站点范围内进行查找替换,突然想到我可以使用IIS重新路由这些请求。因此,我的问题是,IIS能否在提供文件之前拦截对/images文件夹的请求并为新URI添加前缀?如果是这样,除了从新位置获取图像所花费的时间外,这会给应用程序带来什么类型的延迟?我的大多数图像文件是.png、.gif和.jpeg,通常为5-20kb,用于模板、按钮和常规格式设置。

有了它们,您就可以做到这一点

匹配/images/*并重定向到



您运行的IIS版本是什么?我们正在运行IIS 7.5,但计划部署到Azure,Azure似乎也基于7.5。我可能会选择此选项,但我将尝试寻找一种不依赖于安装任何第三方扩展的解决方案。我正计划在Azure中运行我的应用程序,所以最好使用.NET自带的东西。我目前正在考虑使用类似IRoutHandler的工具。@QF_Developer由于您使用的是IIS 7.5,重写模块已经是您安装的一部分(它不是第三方扩展)。我相信这是做你想做的事情最简单的方法!我尝试了上面的示例,但没有成功,web.config抱怨“rewrite”是无效的子元素。在VS中调试时,这是否有效?我正在从Visual Studio开发服务器启动。好的,我看到重写只在IIS中有效。我将尝试在IIS Express中进行调试。重写现在正在进行,但我将以以下内容结束。我试图调整正则表达式以消除重复的正斜杠。
<system.webServer>
    <rewrite>
        <rules>
            <rule name="images to azure" stopProcessing="true">
                <match url="/images/(.*)" />
                <action type="Redirect" url="https://myarea.blob.core.windows.net/images/{R:1}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>