ASP.NET にローカル Web サイトがあります。そして、静的コンテンツの一部 (「静的」フォルダーから) を別の Web サイトにプロキシする必要があります。
このルールを追加しました:
<rule name="All in static folder" stopProcessing="true">
<match url="^static/.*" />
<action type="Rewrite" url="http://otherwebsite.com/{R:0}" appendQueryString="true" logRewrittenUrl="true" />
</rule>
しかし、それは機能しません-失敗したリクエストログに基づいて、ルートが一致します(PATTERN_MATCHステップが「true」に一致し、REWRITE_ACTIONとRULE_EVALUATION_ENDに正しいURLが表示されます)が、ASP.NETがこの後も他のモジュールを評価し続けていることがわかります。コンテンツを単独で提供しようとして、静的ファイル ハンドラーにヒットし、404 を取得します (ディスクにそのようなファイルがないため)。
書き換えられたファイル (ブラウザで開いたhttp://otherwebSite.com/static/stylesheet.cssのようなファイルは問題なくアクセスできます)。また、他のエイリアスを (etc/hosts に) 書き込んでhttp://otherwebSiteLocalAlias.com/static/stylesheet.cssを開くこともできます (つまり、Web サイトにはホスト/プロキシ検証メカニズムがありません)。
アクションを「リダイレクト」に変更することもできますが、私の場合は受け入れられません。
非静的リソース(/mypage/ のようなフォルダー URL) を同じホストにプロキシする別のルールがあり、それは機能します。静的ファイルでは機能しません-URLの書き換えが適切に行われた後、リクエストがasp.netによって処理され続けているようです。