IIS7重写图像文件

时间:2011-04-09 19:35:09

标签: iis-7 url-rewriting rewrite isapi

我想知道是否有可能有IIS7 URL重写规则执行类似这样的操作。有人去的时候:

http://www.mydomain.com/images/0000022_0-Hello_World.jpeg

它将在以下位置请求该文件: http://www.mydomain.com/images/0000022_0.jpeg

我尝试制定匹配(。)/ images /(.) - (。*)。jpeg的规则,然后将其重写为{R:1} / images / {R: 2} .jpeg,但它不起作用。我刚收到404错误。我也尝试添加ISAPI通配符,但它没有改变任何东西。

我正在使用.net 4.0

谢谢!

3 个答案:

答案 0 :(得分:1)

假设您使用IIS管理器(如this article中所示):

尝试创建符合以下模式(正则表达式)的重写规则:

^images/([0-9_]+)-.*\.jpeg$

作为操作,选择重写,并填写以下重写网址

images/{R:1}.jpeg

之后不应执行其他规则( - > 停止处理后续规则复选框)

答案 1 :(得分:1)

由于您有扩展名(.jpeg),因此您无需为此添加ISAPI通配符,因此应由StaticFile处理程序处理。

答案 2 :(得分:0)

你应该把它放在其他重写规则之后,用于虚拟文件夹等。

<rule name="rule 1s" stopProcessing="true">
    <match url="\.(gif|jpe?g|png|bmp)"  ignoreCase="true" />
   <conditions>
       <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
   </conditions>
   <action type="Rewrite" url="//ressources/default.png"  />
</rule>