1

私はこれを機能させるために大変な時間を過ごしています。私はで見つけた指示に従いました:

http://learn.iis.net/page.aspx/659/reverse-proxy-with-url-rewrite-v2-and-application-request-routing/

簡単なテストとして、メディアディレクトリ(CSS、画像など)内のすべてのリクエストを別のホストの同じディレクトリにプロキシしようとしています。構成は次のとおりです。

<rewrite>
    <rules>
       <rule name="ReverseProxyInboundRule1" stopProcessing="true">
            <match url="^(media/.*)" />
            <conditions>
                 <add input="{CACHE_URL}" pattern="^(https?)://" />
             </conditions>
             <action type="Rewrite" url="{C:1}://mystatichost/{R:1}" />
        </rule>
     </rules>
 </rewrite>

そして私のDefault.master中には次のような画像タグがあります:

<img src="/media/img/homepage.jpg" />

しかし、その画像リクエストに対して404エラーが発生し続けます。ファイル/media/img/homepage.jpgは間違いなくに存在しmystatichostます。私は何を見逃している/誤解していますか?

4

1 に答える 1

0

あなたの正規表現には少し奇妙なところがあるようです。

の代わりに<match url="^(media/.*)" />、を使用する必要があります<match url="(media/.*)" />。そうしないと、一致は URL 文字列の先頭からのみ開始されます。これは、常に で始まるため、機能しませんhttp

だから、それを短くするために、これを試してください:

<rewrite>
  <rules>
   <rule name="ReverseProxyInboundRule1" stopProcessing="true">
        <match url="(media/.*)" />
        <conditions>
             <add input="{CACHE_URL}" pattern="^(https?)://" />
         </conditions>
         <action type="Rewrite" url="{C:1}://mystatichost/{R:1}" />
    </rule>
  </rules>
</rewrite>

それでもうまくいかない場合、mystatichost へのすべてのリクエストに HTTPS が必要ですか?

おそらく、<conditions>セクションを削除してから設定でき<action type="Rewrite" url="http://mystatichost/{R:1}" />ます。

幸運を!

于 2016-01-29T01:13:14.077 に答える