web-dev-qa-db-ja.com

IISのURL書き換えルールは、すべてのページのフォルダパスを置き換えます

私のウェブサイトプロジェクトには300ページ以上あります。時間をかけて、安全な新しいサーバーを作成しました。このサーバーは、ウェブサイトのすべての画像に特別に使用されます。

だからここにシナリオがあります:

  • 画像の現在の実装(aspx、css)

    http://www.mysite.com/assets/common/image1.jpg
    
  • 時々ウェブページとcssでそれはこのように指定されます

    ~/assets/common/image1.jpg        
    
  • このような何かを使いたいです。

    http://www.static.mysite.com/common/image1.jpg
    
  • と安全なページのために

    https://www.static.mysite.com/common/image1.jpg
    

ご覧のとおり、すべての画像は~/assetsフォルダーから取得されていますが、~/assetshttp://static.mysite.comに置き換えるルールを作成します。

書き換えルールを使用してIISでこれを実現するにはどうすればよいですか?.

例:

ASPX

 <img src="/assets/common/image1.jpg" id="ImageId1" alt="Image" width="100" height="100" />

<img src="http://mysite.com/assets/common/image2.jpg" id="ImageId2" alt="Image" width="100" height="100" />

IISルールが必要です。上記のコードが見つかったら、それを http://static.mysite.com/common/image1.jpg に置き換えます。

 <img src="http://static.mysite.com/common/image1.jpg" id="ImageId1" alt="Image" width="100" height="100" />


<img src="http://static.mysite.com/common/image2.jpg" id="ImageId2" alt="Image" width="100" height="100" />
9
patel.milanb

IISでアウトバウンドルールを作成する必要があります。ルールには次のものが必要です。

  1. 前提条件はhtmlファイルのみをチェックする必要があります(私はデフォルトのIsHTMLを使用しました)
  2. 「コンテンツのマッチング」で、リンクを確認する要素を選択します
  3. パターンは^(.*)/assets/(.*)です
  4. アクションのプロパティは http://static.mysite.com/ {R:2}です。 R:2は、上記の正規表現の2番目の()を参照します。 「テストパターン」ボタンをクリックすると、必要なものを確認できます。

上記を満たす以下の単純なルール:

enter image description here

11
Piotr Stapp

あなたはこれを試すことができます

<rule name="assets redirection" stopProcessing="false">
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
    <action type="Redirect" url="{R:1}/{R:3}" />
</rule>

リダイレクトしますwhatever/assets/common/image1.jpgからwhatever/common/image1.jpg

更新:

<rule name="assets redirection" stopProcessing="false">
    <match url="^(.*)/(assets)/(.*)" ignoreCase="false" />
    <action type="Redirect" url="static.mysite.com/{R:3}" />
</rule>
5
Satpal

うーん、このようにできる方法

string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";

SchemeはあなたのウェブSchemeshttpやhttpsなどです。権限はあなたのウェブドメイン名であり、もしあればポートがあります。次に、ここで画像のURLを完全に取得します。

私はこのロゴのURLをssrsレポートサービスに使用しましたが、うまくいきました。うまくいくことを願っています。

コメントや質問は大歓迎です。ありがとうございました。

2
Binod