IIS7 URL 重写 - 重写 CSS 文件

IIS7 URL 重写 - 重写 CSS 文件

background: url("/myuri.jpg")我正在尝试用一些规则重写某些 CSS 文件,以便它用前缀(如)替换 CSS 中的每个链接实例(如background: url("/zeus/myuri.jpg")

这些就是规则。

<rule name="ReverseProxyOutboundRule2" preCondition="IsCSS" enabled="true" stopProcessing="false">
    <match filterByTags="None" pattern="url\(&quot;(.*)&quot;\)" />
    <action type="Rewrite" value="url(&quot;/zeus{R:1}&quot;)" />
    <conditions>
        <add input="{URL}" pattern="/zeus" />
    </conditions>
</rule>

<preCondition name="IsCSS">
    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/css" />
</preCondition>

然而,只有url 以这种方式被替换,而其余部分则被忽略。

提前谢谢您。

答案1

这是你的正则表达式模式。

您使用了url\(&quot;(.*)&quot;\),它在命中第一个 url 后会贪婪地匹配文件中最后一个引号之前的每个字符。这并不明显,因为您的替换只是在匹配的内容上添加前缀,因此看起来只有第一个 url 被触及。

尝试使用惰性量词,即.*?在捕获表达式中。这将匹配到下一个引号为止的最少字符。

相关内容