6

我有一个托管在 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>

定义此规则后,指向 images 文件夹中文件的每个链接都应重写到静态服务器 URL。但这根本不起作用,现在 images 文件夹中的每个图像都返回 404 not found。关于可能导致此行为的原因或关于如何从不同服务器的特定文件夹提供文件的不同解决方案的任何想法,而无需处理大量代码并更改所有链接以链接到静态服务器?

我也尝试过使用 Redirect 操作类型而不是 Rewrite 操作,这实际上是有效的,但它违背了我尝试在不同服务器上提供文件的原因(通过这种方式将请求发送到我的动态内容服务器所有必需的 cookie 并被重定向到静态服务器,这实际上比从动态内容服务器提供图像更糟糕)。

4

1 回答 1

2

我认为仅凭该规则不会为您解决此问题。它可能不会重写发送给用户的页面中的链接。

您链接到的文章建议您“与IIS 应用程序请求路由模块一起”执行此操作。实际更改发送到客户端的文件中的链接的是路由模块。

于 2010-11-09T13:57:37.040 回答