我被一个简单的出站规则困住了,我想修改HTTP内容类型 to 应用程序/原子+xml,如果 URL 完全匹配http://wayneye.com/Feeds/Atom http://wayneye.com/Feeds/Atom
我的规则 XML:
<outboundRules>
<rule name="AtomFeedsIMEType" patternSyntax="ExactMatch">
<match serverVariable="RESPONSE_CONTENT_TYPE" pattern="http://{HTTP_HOST}/Feeds/Atom" />
<action type="Rewrite" value="application/atom+xml" />
</rule>
需要帮忙...
您将服务器变量与完整 URL(包括域名)进行匹配。那是行不通的;-)。 Content-Type 的值是什么并不重要,无论如何你都会替换它,这样你就可以匹配任何内容。为了确保您不会在每个页面上替换它,您需要添加一个前提条件以仅匹配以 /Feeds/Atom 开头的请求(在 {REQUEST_URI} 上)。这是一个例子:
<outboundRules>
<rule name="AtomFeedsIMEType" preCondition="Match atom feeds">
<match serverVariable="RESPONSE_Content_Type" pattern="(.*)" negate="false" />
<action type="Rewrite" value="application/atom+xml" replace="true" />
</rule>
<preConditions>
<preCondition name="Match atom feeds">
<add input="{REQUEST_URI}" pattern="^/Feeds/Atom" />
</preCondition>
</preConditions>
</outboundRules>
为此,必须将服务器设置为允许更改 Content-Type 标头。这可以在服务器级别或站点级别上完成,但需要由管理员完成。它是在 applicationHost.config 中设置的,而不是在 web.config 中设置的。这是 applicationHost.config 的一部分,它允许:
<location path="your_site_name">
<system.webServer>
<rewrite>
<allowedServerVariables>
<add name="CONTENT_TYPE" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</location>
您还可以通过 GUI 中的“查看服务器变量”链接来允许此操作,该链接位于主 URLRewrite 屏幕的操作下。希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)