4

我编写了一个简单的重写规则,因此我可以从所有页面路径中删除 .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>
4

1 回答 1

0

在匹配字段中试试这个:

<match url="^(.*/[^.]*)$" />

它应该匹配所有没有“。”的网址。在最后一个'/'之后。

于 2012-12-03T15:53:20.760 回答