重写网站而不丢失反向链接



我最近将一个使用经典asp的网站改写为asp.net。该网站有大量指向以.asp结尾的文章的反向链接。鉴于所有这些文章现在都位于.aspx页面上,您将如何恢复这些宝贵的反向链接?

EDIT-反向链接意味着网络上有很多其他网站指向,例如,article.asp和article.asp将不复存在,现在将是article.aspx。

使用URL重写来适当地重定向链接-这意味着它们应该是301个重定向。因此,如果有人或东西(即搜索机器人)访问了.asp页面,他们将被重定向到相应的.aspx页面。对于IIS,请从以下位置开始:http://www.iis.net/downloads/microsoft/url-rewrite

理想情况下,我也会去掉.aspx扩展,路由会帮助你。

我最近经历了一个类似的项目,我们所做的是为旧的经典asp页面创建了很多占位符页面,如下所示:

<%
   Response.Status="301 Moved Permanently"
   Response.AddHeader "Location","/New/Page/RelativeAddress"
   Response.End
%>

这就是页面的全部内容,因此旧页面被映射到一个新位置。这对我们有效,因为我在一所小大学,在那里我可以获得廉价的工读劳动力来做基本上是复制/粘贴的工作。如果你有很多页面,你也可以把映射放在数据库表中,并在404处理程序中写代码来进行重定向。

以下是我的建议

  1. 编写一个脚本,以字符串形式打开每个文件,对其进行解析并将.asp更改为.aspx(需要30分钟)
  2. 创建.asp重定向页面以重定向到.aspx页面(也可以使用脚本自动执行)

我不在ASP中编码,所以我不知道是否有更简单的方法

您可以做的一件事是添加简单的JavaScript,使用jQuery查找所有以.asp结尾的链接,用.aspx替换。

并将代码添加到布局页面,这样它将应用于所有页面。

<html>
<head>
     <script src="http://www.google.com/jsapi" type="text/javascript"></script>
     <script type="text/javascript">google.load("jquery", "1.3.2");</script>
</head>
<body>
    <a href="a.asp">A</a> | 
    <a href="b.asp">B</a>

    <script>
    $(document).ready(function(){
        $('a[href$=".asp"]').each(function(){
            var lnk = $(this).attr('href');
            $(this).attr('href',lnk+'x')
        });
    });
    </script>
</body>

如果你真的想保留.asp,那么你应该将新网站中的URL(扩展名为.aspx)重写为.asp扩展名。(这仅适用于新网站中的链接结构与旧网站相同的情况)

最新更新