3

どういうわけか、これらの書き換えルールに頭を悩ませているようには見えないので、皆さんが助けてくれることを望んでいました。私が欲しいのは、リンク、img、スクリプト、および入力タグのパスを書き換えるアウトバウンドルールです。

これを変更したい: http ://www.mysite.com/appname/css/file.css

これに:http: //cdn.mysite.com/css/file.css

したがって、基本的には、ホスト名を交換して、URLからアプリ名を削除する必要があります。* .aspxファイルへの前提条件フィルターはすでに設定されていますが、残りはギリシャ語のように見えます。

明確にするために編集

上記のURLのappnameは、IISのアプリケーションです。これは、使用されているappnameのプレースホルダーです。現在の設定では、50を超えるさまざまなアプリのいずれかである可能性があります。常にappnameがあります。おそらくそれはルールをさらに簡単にするでしょう。

ホスト名(この場合はwww.mysite.com)も、サブドメインに関してわずかに異なる場合があります。www1.mysite.com、www2などの可能性があります。また、SSLがある場合はそれを維持する必要があることに気づきました。

ですから、結局のところ、使用されたプロトコルを尊重しながら、URLからアプリ名を差し引いたものを新しいドメインに追加するだけでよいと思います。

元のURL:http(s):// {host} / {appname} / {URL}

出力:http(s)://cdn.mysite.com/ {URL}

4

1 に答える 1

5

私はあなたのウェブサイトのドメインが常に同じであると仮定します、そしてこのルールはするべきです:

<rule name="CdnRule" preCondition="OnlyAspx" >
    <match filterByTags="Img, Input, Link, Script" pattern="^(.+)://.+?\.(.+?)/.+?/(.*)" />
    <action type="Rewrite" value="{R:1}://cdn.{R:2}/{R:3}" />
</rule>

<preConditions>
<preCondition name="OnlyAspx">
    <add input="{PATH_INFO}" pattern=".+\.aspx$" />
</preCondition>
</preConditions>

編集:明確な質問に従って変更

サブドメイン(www、www2、...)は常に存在し、ターゲットURLでは無視する必要があると思います。

于 2012-02-16T13:43:22.917 に答える