好的,所以现在我们大多数人可能会使用下面的标准规则来删除你的 url 中的 aspx 扩展名。
<rule name="Remove">
<!--Removes the .aspx extension for all pages.-->
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
但是我想修改规则以防止写入规则捕获任何带有句点的 url。
这样,如果有人尝试输入http://www.domain.com/picture.jpg ,则规则不会捕获它。
幸运的是 IsFile 和 IsDirectory 条件可以防止实际文件被规则击中,但是每当我遇到有人键入服务器上不存在的文件的情况时,规则就会捕获它并且 asp.net 会执行以下操作:
http://www.domain.com/404error.aspx?aspxerrorpath=/picture.jpg.aspx
当找不到文件时,我希望它不通过规则。
基本上我只需要能够添加一个条件,只要在域名后面的 url 中找到一个句点就可以否定。我假设某种 REGEX 会起作用。我似乎无法让它正常工作。