web.config中的iis重写规则需要帮助
我使用的是运行在IIS 7.5中的mvc4应用程序,我设置的重写规则有问题。以下是web.config中的我的部分web.config中的iis重写规则需要帮助,iis,asp.net-mvc-4,url-rewriting,iis-7.5,Iis,Asp.net Mvc 4,Url Rewriting,Iis 7.5,我使用的是运行在IIS 7.5中的mvc4应用程序,我设置的重写规则有问题。以下是web.config中的我的部分 <rewrite> <rules> <rule name="RewriteImage"> <match url="/myassets/([_0-9a-z-]+)/images/category/([_0-9]+)-([_0-9a-z-]+)-([0-9]+)" /&g
<rewrite>
<rules>
<rule name="RewriteImage">
<match url="/myassets/([_0-9a-z-]+)/images/category/([_0-9]+)-([_0-9a-z-]+)-([0-9]+)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="/myassets/{R:1}/images/category/cat_{R:2}_{R:4}_{R:3}.jpg" />
</rule>
</rules>
</rewrite>
我想在上面的url中将图像重写到另一个路径
我提供以下urlhttps://localhost/myassets/en-uk/images/category/123456-5x10-1_my+image+description.jpg
并期望它重写为https://localhost/myassets/en-uk/images/category/cat_123456_1_5x10.jpg
但事实并非如此
当我在IIS中测试它时,一切正常,但通过浏览器,规则永远不会生效。我正在寻找关于我哪里出错的建议,因为这变得非常令人沮丧
这是我唯一的规则,我尝试了一个简单的重定向规则,将大写url重定向到小写url,效果很好
在我的web.config中,我注意到了一件事,第一个rewrite标记下面有一个蓝色的波形,表示它是system.webserver的未识别部分
应用程序正在集成模式下运行。问题是您的regexp无效。注: 例如,如果请求此URL: ,及 重写规则是在站点级别定义的:规则模式将URL字符串
content/default.aspx
作为输入
这意味着,您不应该以斜杠开始regexp
例如:
<rule name="RewriteImage">
<match url="myassets/([_0-9a-z-]+)/images/category/([_0-9]+)-([_0-9a-z-]+)-([0-9]+)" />
<action type="Rewrite" url="/myassets/{R:1}/images/category/cat_{R:2}_{R:4}_{R:3}.jpg" />
</rule>
你怎么知道规则永远不会生效?文件是否https://localhost/myassets/en-uk/images/category/cat_123456_1_5x10.jpg
存在?如果删除
,会怎么样?如果我删除图片https://localhost/myassets/en-uk/images/category/cat_123456_1_5x10.jpg
存在,并且在您呼叫时https://localhost/myassets/en-uk/images/category/123456-5x10-1_my+image+description.jpg
它不显示它,对吗?你看到了什么?如果你用这个怎么办?