4

我一直在试图弄清楚为什么这条规则可以作为重定向而不是重写。直到几个小时后,我才想到将其作为重定向尝试,令我惊讶的是它起作用了。

你能解释一下为什么第一个有效而第二个无效吗?

重定向

<rule name="Rewrite to images.cdn.com" enabled="true">
<match url="^images/(.+)$" />
<action type="Redirect" url="http://images.cdn.com/{R:1}"/>
</rule>

改写

<rule name="Rewrite to images.cdn.com" enabled="true">
<match url="^images/(.+)$" />
<action type="Rewrite" url="http://images.cdn.com/{R:1}"/>
</rule>

失败的请求日志信息 替换和重写都是相同的,这意味着它应该可以工作,因为您可以将该 url 复制到浏览器中并且它可以工作。

<EventData>
  <Data Name="ContextId">{00000000-0000-0000-6C00-0080000000F8}</Data>
  <Data Name="Substitution">http://39e403d64323deb9e704-7fcaccb4b31037dfec2feb2a157f55bc.r52.cf1.rackcdn.com/images/updateprogress.gif</Data>
  <Data Name="RewriteURL">http://39e403d64323deb9e704-7fcaccb4b31037dfec2feb2a157f55bc.r52.cf1.rackcdn.com/images/updateprogress.gif</Data>
  <Data Name="AppendQueryString">false</Data>
  <Data Name="LogRewrittenURL">false</Data>
 </EventData>

谢谢!

ASP.NET/IIS 7.0

4

1 回答 1

1

答案可以在这篇文章中找到:Rewrite Subfolder to Subdomain in web.config

基本上缺少一个模块,需要设置代理设置。对@cheesmacfly 的许多赞誉

于 2013-01-31T22:01:13.293 回答