我最近将一个使用经典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处理程序中写代码来进行重定向。
以下是我的建议
- 编写一个脚本,以字符串形式打开每个文件,对其进行解析并将.asp更改为.aspx(需要30分钟)
- 创建.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扩展名。(这仅适用于新网站中的链接结构与旧网站相同的情况)