1

我有以下两条规则

规则1:

<rule name="DirectoryRewrite" stopProcessing="true">
    <match url="(.*)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{URL}" pattern="\.aspx" negate="true" />
        <add input="{URL}" pattern="\.ashx" negate="true" />
        <add input="{URL}" pattern="\.asmx" negate="true" />
        <add input="{URL}" pattern="\.axd$" negate="true" />
    </conditions>
    <action type="Rewrite" url="/Views/{R:1}/default.aspx" />
</rule>

规则 2:

<rule name="RootRewrite" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{URL}" pattern="\.aspx" negate="true" />
        <add input="{URL}" pattern="\.ashx" negate="true" />
        <add input="{URL}" pattern="\.asmx" negate="true" />
        <add input="{URL}" pattern="\.axd$" negate="true" />
        <add input="{REQUEST_FILENAME}.aspx" matchType="IsFile" />
    </conditions>
    <action type="Rewrite" url="/Views/{R:1}.aspx" />
</rule>

user我的根目录中有一个文件夹,其中包含settings.aspx& default.aspx,并且 root 也包含一些文件,即faq.aspx & contact.aspx.

如果有人进入,这就是我想要实现的目标

site.com/user

然后使用规则 1 将其带到用户目录,如果有人键入,则以同样的方式

site.com/terms

,它应该把它们带到terms.aspx。到目前为止,规则一工作正常,它重定向到给定的目录,但是当我试图访问根目录(即termscontact)中的页面时,它会将它们与规则 1 匹配并尝试查找termscontact目录,但一无所获返回The resource cannot be found.

你能指出我做错了什么吗?

4

0 回答 0