我有MyWebSite和MyApp的,如下圖所示:IIS7 URL重寫忽略規則子應用
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中的規則沒有被調用。
問題:我做錯了什麼?這是限制,我不能執行改寫在單獨的配置文件?
P.S. 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>
你能告訴我們web.config文件的相關部分嗎? (定義規則的部分) – cheesemacfly
@cheesemacfly:參見更新 – Kamarey
您可以嘗試使用[失敗的請求跟蹤工具](http://www.iis.net/learn/extensions/url-rewrite-module/using -failed-request-tracing-to-trace-rewrite-rules)並在這裏發佈結果? – cheesemacfly