超强版404.htm执行404.asp重定向
网站更换目录,我们一般想到用301重定向,但有时并不比404来的容易,但有的服务商并没有支持asp版的404,下面我将给你带来一个超级强悍的404.htm,让你的网站更换目录也不怕丢失流量!
针对情况:服务商的404页只能是html.htm.shtml三种格式,不支持ASP文件,
自定义404错误页面,能记录访客浏览的“错误页地址、来路、时间”,并自动记录在404err.htm页里,不需要数据库的。(空间需支持自定义404页、FSO组建支持)
方案一:
我们共用到以下三个文件:
1、404.htm:是404错误页,访客访问的就是这页,它将获得“来路、时间、错误页地址”。
2、404err.asp:为递交页,把404.htm获取的信息生成在404err.htm里。
3、404err.htm:为自动生成页,记录着“错误页地址、来路、时间”。站长通过此页查看详细的记录。
404.htm代码如下(可以插入你已有的404页中的适当位置):
- <script language=javascript>
- <!–时间now.toLocaleString()–>
- now = new Date()
- hour = now.getHours()
- <!–end–>
- document.writeln('<form name=\"404err.asp\" action=\"\/myerr\/404err.asp\" method=\"post\">');
- document.writeln('<input type=hidden name=errurl value="'+window.location.href+'">');
- document.writeln('<input type=hidden name=gourl value="'+document.referrer+'">');
- document.writeln('<input type=hidden name=sjs value="'+" — "+now.toLocaleString()+'">');
- document.writeln('<input type=\"submit\" value=\"该页正在维护中,点此返回\"><\/form>')
- </script>
404err.asp代码如下:
- <%
- guest = request("guest") & request("errurl")& request("sjs")& vbCrlf
- guest = Replace( guest, "<", "<" )
- guest = Replace( guest, ">", ">" )
- guest = Replace( guest, vbCrLf, "<br>" )
- Dim i,str,strResult,strTmp
- Dim M
- M = 95
- For i = 1 To Len(guest) Step M
-
strTmp = Mid(guest,i,M) & "<br>"
-
strResult = strResult & strTmp
- Next
- guest=strResult
- Set File = Server.CreateObject("Scripting.FileSystemObject")
- Application.Lock
- Path = Server.MapPath("404err.htm")
- if file.FileExists (Path) then
- const ForAppending=8
- set stream = file.OpenTextFile (path,8)
- stream.writeline "<br>"
- stream.writeline guest
- stream.close
- else
- set stream = file.CreateTextFile (path)
- stream.writeline "<b>404错误页流量详尽信息</b><br>"
- stream.writeline guest
- stream.close
- end if
- Application.UnLock
- %>
- <body>
- <iframe width=0 height=0 border=0 frameborder=0 marginwidth=0 marginheight=0 scrolling=no src='goerr.asp?gourl=<%=request("gourl")%>&sjs=<%=request("sjs")%>'></iframe>
- <%
- if request("gourl")="" then
- response.write"<meta http-equiv='Refresh' content='0; URL=/'>"
- response.end
-
end if
- %>
- <meta http-equiv='Refresh' content='1; URL=/?<%=request("gourl")%>'>
测试通过
方案二:
最近我的网站更换了一次域名和目录,改动算是比较大的。老的HTML文件留着又担心让GOOGLE认为是网页复制,删了收录又是个损失,那么如何能在404上体现出对应的新网址呢?我的做法如下,分享给大家:注:其中的网址为举例,以求例子详细能说明问题,红色为更换目录的地方!
如老页
https://yangjunwei.com/art3/2007-1/345-1.shtml
新页路径 https://yangjunwei.com/poplar/popar20071/345-1.shtml
- <script language=javascript>
- var oldurl=window.location.href
- var newurl
- newurl=oldurl.replace(/art\//g,"poplar\/poplar"); // 替换 art 为 poplar/poplar
- newurl=newurl.replace(/-/g,""); //去掉所有"-"这里包括时间中"-"与最后一个"-",最后一个当然不是我们想删的
- newurl=newurl.replace(/1\.shtml/g,"-1\.shtml"); //加上最后一个"-"
- document.writeln('你浏览地址也变更,您可以尝试\n');
- document.writeln('1.<a href="'+newurl+'">点击访问新网址<\/a>\n');
- document.writeln('2.<a href=http:\/\/yangjunwei.com>点击从首页访问<\/a>\n'); //简单考虑其他情况
- </script>
这里没有判断其他错误404页,这个就不用这里说了
怎样?是不是很强大,如果对你有帮助,请给支持一下!