Как разработчик веб-сайта иногда не хотят, чтобы изображения на нашем веб-сайте имели прямые ссылки и показывались на других веб-сайтах. В некоторых случаях это может привести к большой пропускной способности сети для наших центров обработки данных, что означает, что мы платим за того, кто использует наши изображения.
Например, ваш веб-сайт www.sample1.com, у вас есть изображение http://www.sample1.com/test.jpg и www.sample2.com использовали ваше изображение на www.sample2.com, поместив тег в HTML, это может привести к тому, что сетевой запрос поступит на ваш сервер, потребляя ваши ресурсы.
, если пользователь попадает на www.sample2.com, посещая http://www.sample1.com/test.jpg, для веб-сервера www.sample1.com HTTP-запрос для этого конкретного изображения будет иметь заголовок HTTP с именем "referer" со значением "http://www.sample1.com ....". Здесь мы будем проверять и блокировать запрос.
правило перезаписи URL:
<rule name="Prevent Image Hotlinking">
<match url=".*\.(jpg|jpeg|png|gif|bmp)$" />
<conditions>
<add input="{HTTP_REFERER}" pattern="^$" negate="true" />
<add input="{HTTP_REFERER}" pattern="^http://www.sample1.com/.*$" negate="true" />
</conditions>
<action type="Rewrite" url="/img/no_hotlinking.png" />
Если это все еще не работает, попробуйте отключить кэш и повторите попытку.
, если вы хотите заблокировать несколько сайтов, вы также можете использовать переписать Карта и установить список сайта.
<system.webServer>
<rewrite>
<rules>
<rule name="Blacklist block" stopProcessing="true">
<match url="(?:jpg|jpeg|png|gif|bmp)$" />
<conditions>
<add input="{HTTP_REFERER}" pattern="^https?://(.+?)/.*$" />
<add input="{DomainsBlackList:{C:1}}" pattern="^block$" />
<add input="{REQUEST_FILENAME}" pattern="splog.png" negate="true" />
</conditions>
<action type="Redirect" url="http://www.hanselman.com/images/splog.png" appendQueryString="false" redirectType="Temporary"/>
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="DomainsBlackList" defaultValue="allow">
<add key="google-chrome-browser.com" value="block" />
<add key="www.verybadguy.com" value="block" />
<add key="www.superbadguy.com" value="block" />
</rewriteMap>
</rewriteMaps>
</rewrite>
</system.webServer>