HTTP 応答ストリームの本文で見つかった URL を書き換える非常に単純な OutBound UrlRewriter ルールがあります。
<rewrite>
<outboundRules>
<rule name="Scripted"
preCondition="IsHtml"
patternSyntax="ECMAScript"
stopProcessing="false">
<match filterByTags="None" pattern="http://someurl.com" />
<action type="Rewrite" value="http://anotherurl.com" />
</rule>
<preConditions>
<preCondition name="IsHtml" patternSyntax="Wildcard">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
問題は、電源を入れるとすぐにpreCondition
書き換えが行われないことです。
ページは ASP.NET ページであり、ASP.NET スクリプト リソースを使用するため、前提条件を使用できる必要があります<script src="ScriptResource.axd?d=...." type="text/javascript" />
。
デフォルトでは、スクリプト リソースは gzip 圧縮されており、そのままにしておく必要があります。コンテンツ タイプの前提条件がない場合、URLRewriteModule
リライタは 500.52 エラーをスローします。
Fiddler を使用するContent-Type: text/html; charset=utf-8
と、応答ヘッダーで送信されていることがわかりますが、UrlRwriter はこれと一致しないようです。
なぜこうなった?