我写了一个简单的重写规则,所以我可以从我所有的页面路径中删除.aspx。
这样,如果有人输入 http://www.domain.com/Contact,他们将被带到联系页面,而不必输入 http://www.domain.com/contact.aspx。
以下规则工作正常,但文件名包含句点的情况除外。我不希望应用该规则,因为即使认为当 url 是文件或目录时我有一个条件否定,这不适用于处理程序和其他特殊文件。为了避免这个问题,我通过为每个文件添加一个条件来否定特殊文件,但这不再是有效的,但是因为有很多特殊情况会出现这种情况,我不想为每个特殊情况编写一个新文件。
基本上,我只需要添加一个条件,即当文件名中有句点时将其否定。谁能帮忙?我不太擅长正则表达式。
<rule name="RewriteASPX" stopProcessing="true" enabled="true">
<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>
在匹配字段中尝试此操作:
<match url="^(.*/[^.]*)$" />
它应该匹配最后一个"/"之后没有"."的所有网址。