如何解决此网址重写问题?

时间:2012-10-18 14:32:45

标签: c# url-rewriting

我遵守了2条规则

规则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&amp; default.aspx,root也包含少量文件,即faq.aspx & contact.aspx

如果有人进入

,这就是我想要实现的目标
  

site.com/user

然后使用规则1将其带到用户目录,如果有人键入

,则以相同的方式
  

site.com/terms

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

请你指出我做错了什么。

0 个答案:

没有答案