Asp.net IIS 7 url重写规则,用于删除目录和扩展名,并且仅特定于一个目录

Asp.net IIS 7 url重写规则,用于删除目录和扩展名,并且仅特定于一个目录,asp.net,mod-rewrite,iis,url-rewriting,Asp.net,Mod Rewrite,Iis,Url Rewriting,我的网站中有多个目录。所有aspx页面都位于目录“SitePages”中。 例子, 我需要一个url重写规则来删除目录和扩展名,如: 变成 如果该站点位于https或域名前有www,则该规则不应改变这一点 该规则还应将用户输入的绝对URL更改为这些友好URL 例如, 如果用户输入,则浏览器应显示 所以我想需要两条规则 此外,该规则应仅适用于目录“Sitepages” 规则不应区分大小写 我试过一些规则,但它们不能正常工作。 我试过这些: <rule name="RewriteUserF

我的网站中有多个目录。所有aspx页面都位于目录“SitePages”中。 例子,

我需要一个url重写规则来删除目录和扩展名,如: 变成

如果该站点位于https或域名前有www,则该规则不应改变这一点

该规则还应将用户输入的绝对URL更改为这些友好URL

例如, 如果用户输入,则浏览器应显示

所以我想需要两条规则

此外,该规则应仅适用于目录“Sitepages”

规则不应区分大小写

我试过一些规则,但它们不能正常工作。 我试过这些:

<rule name="RewriteUserFriendlyURLS" enabled="true" stopProcessing="true">
<match url="^([a-zA-Z0-9_-]+)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="sitepages/{R:1}.aspx" />
</rule>

我也试过:

<rule name="Redirect requests to friendly URLs">
<match url="^(.*?)/(.*)\.aspx$" />
<action type="Redirect" url="{R:2}" />
</rule>
<rule name="Rewrite friendly URLs to phsyical paths">
<match url="^(.*)$" />
<action type="Rewrite" url="sitepages/{R:0}.aspx" />
</rule>


请帮忙

要将用户重定向到友好URL,您需要规则:

<rule name="Test" stopProcessing="true">
   <match url="^.*Sitepages.*\/(.*).aspx$" />
   <action type="Redirect" url="{R:1}" />
</rule>
<rule name="Test2">
   <match url="^.*Sitepages.*$" />
   <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:0}.aspx" />
</rule> 

要处理友好URL,您需要以下规则:

<rule name="Test" stopProcessing="true">
   <match url="^.*Sitepages.*\/(.*).aspx$" />
   <action type="Redirect" url="{R:1}" />
</rule>
<rule name="Test2">
   <match url="^.*Sitepages.*$" />
   <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:0}.aspx" />
</rule>