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

在IIS 7.5上使用asp.Net 4.0处理旧的*.asp链接的最佳方法?,asp.net,asp-classic,backwards-compatibility,Asp.net,Asp Classic,Backwards Compatibility,我们仍然有很多指向旧.asp页面的传入URL。新的.aspx页面的调用与旧的.asp页面相同,并且接受的值基本相同,因此它们几乎可以互换。不幸的是,我们仍然收到对旧的.asp页面的POST和get请求。 我们在asp.Net 2.0应用程序中处理了这些.asp请求,方法是在web.config system.webserver部分添加以下内容: <handlers> <add name="ASPClassicForRedirectToASPX"

我们仍然有很多指向旧.asp页面的传入URL。新的.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结尾,如果以.asp结尾,则重写.aspx的路径


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

如果没有准备好,我会做什么如果可能的话,在BeginRequest中是这样的,而不是url重写:

Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","New-url");
Response.End();
使用301永久重定向,您将确保所有爬虫程序和其他内容将更改其链接到正确的链接,从而大大减少您对.asp页面的调用。除此之外,在某个时候,你会被旧的asp页面的直接链接所困扰,我猜你将不得不放弃它们。不能永远支持旧东西,即使那会很棒: