我试图用某些规则来重写某些CSS文件,所以它用一个前缀replaceCSS中的每一个链接实例(如background: url("/myuri.jpg") )(如后面所示background: url("/zeus/myuri.jpg") )
这些是规则。
<rule name="ReverseProxyOutboundRule2" preCondition="IsCSS" enabled="true" stopProcessing="false"> <match filterByTags="None" pattern="url\("(.*)"\)" /> <action type="Rewrite" value="url("/zeus{R:1}")" /> <conditions> <add input="{URL}" pattern="/zeus" /> </conditions> </rule> <preCondition name="IsCSS"> <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/css" /> </preCondition>
然而,只有一个url正在被这种方式取代,其余的被忽略。
事先谢谢。
这是你的正则expression式模式。
你已经使用了url\("(.*)"\) ,它会在你的第一个url之后贪婪地匹配你的文件中的最后一个字符。 这是不明显的,因为您的replace只是匹配的内容的前缀,所以似乎只有第一个url被触摸。
尝试使用一个懒惰的量词,即.*? 在捕捉expression式中 这将匹配最less的字符,直到下一个报价。