Правило исходящей перезаписи IIS для srcset с несколькими URL-адресами

У меня есть что-то вроде этого в моем html-ответе:

<img 
  src="http://www.test.com/image1.jpg"
  srcset="http://www.test.com/image1-300x200.jpg 300w, http://www.test.com/image1.jpg 600w" sizes="(max-width: 600px) 100vw, 600px" />

Я хотел бы использовать правило исходящей перезаписи IIS, чтобы заменить все ссылки на www.test.com на www.foo.com. Как я могу это сделать, если атрибут (в данном случае srcset) имеет несколько экземпляров URL-адреса?

Вот как сейчас выглядит мое правило:

<outboundRules>
    <rule name="Blog Paths" preCondition="IsBlog">
        <match filterByTags="Img, CustomTags" customTags="BlogTags" pattern="^http://www.test.com(.*)$" />
        <action type="Rewrite" value="http://www.foo.com{R:1}" />
    </rule>
    <preConditions>
        <preCondition name="IsBlog">
            <add input="{RESPONSE_Content_Type}" pattern="^text/html" />
            <add input="{RESPONSE_X_Content_Source}" pattern="^blog" />
        </preCondition>
    </preConditions>
    <customTags>
        <tags name="BlogTags">
            <tag name="img" attribute="srcset" />
        </tags>
    </customTags>
</outboundRules>

Но, конечно, перезаписывается только первый URL в каждом атрибуте:

<img 
  src="http://www.foo.com/image1.jpg"
  srcset="http://www.foo.com/image1-300x200.jpg 300w, http://www.test.com/image1.jpg 600w" sizes="(max-width: 600px) 100vw, 600px" />

Как я могу переписать все экземпляры www.test.com в www.foo.com?


person Johnny Oshika    schedule 06.04.2016    source источник


Ответы (1)


Измените правило следующим образом:

    <match filterByTags="Img, CustomTags" customTags="BlogTags" pattern="(.*)http://www.test.com(.*)" />
    <action type="Rewrite" value="{R:1}http://www.foo.com{R:2}" />
person ajb    schedule 06.05.2016
comment
Также правило должно включать: stopProcessing=false - person ajb; 06.05.2016
comment
Работал как шарм. Мне не понадобился stopProcessing="false" в теге правила, хотя добавить его не помешало. - person Johnny Oshika; 21.05.2016