IIS 7 URL重写规则未应用

时间:2010-11-09 13:38:38

标签: asp.net iis-7 url-rewriting url-rewrite-module

我在IIS7服务器上托管了一个.net 4.0 Web应用程序。

阅读本文后:http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/关于从其他服务器提供静态内容,以便每次请求静态文件时都不会发送cookie,我试了一下但没有太大成功。

这是在web.config文件中编写的部分:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="images" stopProcessing="true">
                <match url="^images/(.*)$" />
                <action type="Rewrite" url="http://static-server.com/images/{R:1}" appendQueryString="true" logRewrittenUrl="true" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

定义此规则后,映像文件夹中文件的每个链接都应重写为静态服务器URL。但这根本不起作用,现在images文件夹中的每个图像都返回404未找到的图像。有关可能导致此行为的原因或如何从不同服务器的特定文件夹中提供文件而不必通过大量代码并更改链接到静态服务器的所有链接的任何想法?

我也尝试使用Redirect操作类型而不是Rewrite操作,这实际上有效,但它无法解释为什么我试图在不同的服务器上提供文件(这样请求被发送到我的动态内容服务器包含所有必需的cookie并被重定向到静态服务器,这实际上比从动态内容服务器提供图像更糟糕。

1 个答案:

答案 0 :(得分:2)

我认为只有这个规则才能解决这个问题。它可能不会重写发送给用户的页面中的链接。

您链接的文章表明您“与IIS Application Request Routing module一起”执行此操作。它是路由模块,它实际上改变了发送给客户端的文件中的链接。