在IIS 7.5上使用Asp.Net 4.0处理旧* .asp链接的最佳方法?

时间:2011-01-05 11:05:00

标签: asp.net asp-classic backwards-compatibility

我们仍然有很多传入的网址指向我们旧的.asp网页。新的.aspx页面被称为与旧的.asp页面相同,并且大多数都接受相同的值,因此它们几乎可以互换。不幸的是,我们仍然向旧的.asp页面提供POST和GET请求。 我们在Asp.Net 2.0应用程序中处理了这些.asp请求,方法是在我们的web.config(system.webserver部分)中添加:

    <handlers>
        <add name="ASPClassicForRedirectToASPX"
             path="*.asp"
             verb="*"
             modules="IsapiModule"
                scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
             resourceType="Unspecified"
             preCondition="classicMode,runtimeVersionv4.0,bitness32" />
    </handlers>

然后检查BeginRequest,如果url以.asp结尾,如果是,则执行RewritePath to .aspx

现在我们已经迁移到asp.net 4.0,我开始怀疑是否有更好的方法来处理这个问题,并且仍然保持与旧的.asp网址的向后兼容性?

1 个答案:

答案 0 :(得分:0)

如果不是全部情况,那么我会做什么就像在BeginRequest中那样,而不是url重写(如果可能的话):

Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","New-url");
Response.End();

使用301永久重定向,您将确保所有抓取工具和内容都将更改其链接到正确的链接,这将减少您经常访问.asp页面的调用。除此之外,你在某些时候仍然坚持使用旧的直接链接到你的asp页面,我猜你必须让它们离开。不能永远地支持旧东西,即使这样也会很棒:)