私のウェブサイトプロジェクトには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
フォルダーから取得されていますが、~/assets
をhttp://static.mysite.com
に置き換えるルールを作成します。
書き換えルールを使用してIISでこれを実現するにはどうすればよいですか?.
<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" />
IISでアウトバウンドルールを作成する必要があります。ルールには次のものが必要です。
^(.*)/assets/(.*)
です上記を満たす以下の単純なルール:
あなたはこれを試すことができます
<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>
うーん、このようにできる方法
string imageUrl= Request.Url.Scheme + "://" + Request.Url.Authority + "/Image/logo/Logo.png";
SchemeはあなたのウェブSchemeshttpやhttpsなどです。権限はあなたのウェブドメイン名であり、もしあればポートがあります。次に、ここで画像のURLを完全に取得します。
私はこのロゴのURLをssrsレポートサービスに使用しましたが、うまくいきました。うまくいくことを願っています。
コメントや質問は大歓迎です。ありがとうございました。