我有 MyWebSite 和 MyApp,如下所示:
MyWebSite
web.config
MyApp
web.config
Pages
page.aspx
我希望下一个 URL 可以工作:www.mywebsite.com/oldpage.aspx
- MyWebSite\web.config 添加到 URL 'MyApp' : www.mywebsite.com/MyApp/page.aspx
- MyApp\web.config 添加到 URL 'Pages': www.mywebsite.com/MyApp/ Pages /page.aspx
我想将此逻辑分成两个规则,因为我希望每个规则都对其负责。MyWebSite 应该决定哪个应用程序是默认应用程序(如果没有指定),并且它不应该知道有关 MyApp 中的“页面”的任何信息。
问题是没有调用 MyApp 中的规则。
问题:我做错了吗?这是我无法在单独的配置文件中执行重写的限制吗?
PS MyWebSite 和 MyApp 在同一个应用程序池下运行。
MyWebSite web.config:
<rule name="Add 'MyWebSite' for ASPX pages">
<match url="^([^/]+\.aspx)" />
<action type="Rewrite" url="MyApp/{R:1}" />
</rule>
MyApp web.config
<rule name="Add 'Pages'">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{URL}" pattern="Pages" negate="true" />
</conditions>
<action type="Rewrite" url="Pages/{R:0}" appendQueryString="true" />
</rule>