我不确定我是否完全理解您的需求,但这里有一些至少很接近的东西。它去掉了第一个文件夹和文件扩展名(因此examplesite.com/folder/about.cshtml
变成examplesite.com/about
和examplesite.com/folder/help/about.cshtml
变成examplesite.com/help/about
)。如果您想删除所有文件夹,则只需删除?
.
<rule name="Remove Directory and Extension">
<match url="^(.*?)/(.*)\.cshtml$" />
<action type="Rewrite" url="{R:2}" />
</rule>
更新:
好的,我认为您想要的是两个规则的组合:
<rules>
<rule name="Redirect requests to friendly URLs">
<match url="^(.*?)/(.*)\.cshtml$" />
<action type="Redirect" url="{R:2}" />
</rule>
<rule name="Rewrite friendly URLs to phsyical paths">
<match url="^(.*)$" />
<action type="Rewrite" url="folder/{R:0}.cshtml" />
</rule>
</rules>
第一条规则确保所有请求都发送到友好的 URL。第二个获取友好 URL 并将其重写为您的物理路径,其中物理路径为folder/[FRIENDLY_PATH].cshtml
.