我需要一些帮助来在IIS7中编写两个URL重写规则,我已经尝试了最近3个小时但没有成功。
基本上,我有以下两条规则:
<rule name="Resize Images - Game Thumbnails - Static" stopProcessing="true">
<match url="^images/c/games/(.+)x(.+)/(.+)$" />
<conditions logicalGrouping="MatchAny">
<add input="\mycms\games\images\thumbs\220x150\{R:3}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/mycms/games/images/thumbs/{R:1}x{R:2}/{R:3}" />
</rule>
<rule name="Resize Images - Game Thumbnails - Dynamic" stopProcessing="true">
<match url="^images/c/games/(.+)x(.+)/(.+)$" />
<conditions logicalGrouping="MatchAny">
<add input="\mycms\games\images\thumbs\{R:1}x{R:2}\{R:3}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/controls/makeThumb.aspx?folder=games&image={R:3}&w={R:1}&h={R:2}" />
</rule>
如果他们独自一人,这两条规则都有效。
例如,如果我只放置静态规则,并且图像存在, 然后它返回图像。
如果我只留下动态规则,并且图像不存在, 然后它被创建。
但为什么这些规则不能合作?
答案 0 :(得分:5)
我发现了问题, 基本上这两个规则都有效:
<rule name="Resize Images - Game Thumbnails - Static" stopProcessing="true">
<match url="^images/c/games/(.+)x(.+)/(.+)$" />
<conditions logicalGrouping="MatchAny">
<add input="{APPL_PHYSICAL_PATH}mycms\games\images\thumbs\{R:1}x{R:2}\{R:3}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/mycms/games/images/thumbs/{R:1}x{R:2}/{R:3}" />
</rule>
<rule name="Resize Images - Game Thumbnails - Dynamic" stopProcessing="true">
<match url="^images/c/games/(.+)x(.+)/(.+)$" />
<conditions logicalGrouping="MatchAny">
<add input="\mycms\games\images\thumbs\{R:1}x{R:2}\{R:3}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/controls/makeThumb.aspx?folder=games&image={R:3}&w={R:1}&h={R:2}" />
</rule>
BUT !!!!这是一个很大但是, 如果删除图像(用于测试目的或其他) 规则以某种方式缓存,并且由于一些bizzare原因,动态规则将不会执行。 强制执行的唯一方法是回收应用程序池。