我想知道是否有可能有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
谢谢!
答案 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>