我不能肯定我完全了解你的需求,但这里的东西是至少接近。它删除第一个文件夹和文件扩展名(所以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
。
IIRC with Razor你可以放弃'.cshtml' - 无论如何 - http://www.asp.net/web-pages/tutorials/working-with-pages/creating-readable-urls-in-aspnet-web- pages-sites – Lloyd 2013-02-21 22:10:07