我有一个现有的经典asp / asp mvc混合应用程序。这是慢慢变得不那么经典的asp和更多的asp mvc。总的来说这很好用。然而,一个棘手的问题是,当存在与路径URL匹配的现有文件夹时,mvc路由会失败。
例如,路径[siteroot]\account\personaldetails\billing.asp
上有一个现有页面,这通常在网址http://host.com/account/personaldetails/billing上提供。我删除了asp文件并构建了一个asp mvc视图来替换它。
如果帐户文件夹已从应用程序中完全删除,我的路由工作正常,但如果我尝试访问新视图时帐户文件夹就在那里,我会得到404.我怎样才能解决这个问题?
答案 0 :(得分:0)
事实证明,我所采用的重写规则是积极的。我只需要添加一个条件,以防止将简报作为.asp文件提取。
<rule name="account remove extension">
<match url="^account(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" pattern="newsletter(.*)$" negate="true" />
</conditions>
<action type="Rewrite" url="account/{R:1}.asp" />
</rule>