ASP.NET Web 配置写入、删除 .ASPX 和忽略带句点的文件名



我写了一个简单的重写规则,所以我可以从我所有的页面路径中删除.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="^(.*/[^.]*)$" />

它应该匹配最后一个"/"之后没有"."的所有网址。

最新更新