我有一个托管在IIS7服务器上的.net 4.0 web应用程序。
在读完这篇文章后:http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/关于从另一个服务器提供静态内容,这样cookies就不会随静态文件的每个请求一起发送,我尝试了一下,但没有太多成功。
这是写在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中。但这根本不起作用,现在图像文件夹中的每个图像都会返回404 not found。你知道导致这种行为的原因是什么吗,或者有什么不同的解决方案,可以从不同的服务器提供特定文件夹中的文件,而不必花费大量的代码并更改所有链接以链接到静态服务器?
我也尝试了使用Redirect操作类型而不是Rewrite操作,这实际上是有效的,但它违背了我试图在另一台服务器上提供文件的原因(这种方式将请求发送到我的动态内容服务器,其中包含所有需要的cookie,并被重定向到静态服务器,这实际上比从动态内容服务器提供图像更糟糕)。
发布于 2010-11-09 21:57:37
我不认为这个规则就能为你解决这个问题。它可能不会重写发送给用户的页面中的链接。
您链接到的文章建议您“与IIS Application Request Routing module一起”执行此操作。它是路由模块,它实际上更改了发送到客户端的文件中的链接。
https://stackoverflow.com/questions/4134230
复制相似问题