一个空间目录下,子目录绑定多个域名的人可能有这需要。
也是这次只转移博客才遇到这样的问题,因为现在博客已不在“www”域名目录下,而是不同的ip了,只能单独绑定“http://ichov.com”这个域名,虽说这已经是小站最大的访问来源。但由于我始终不想损失“http://www.goupwing.com/blog”的那一小部份的访问量,所以想着能不能在404报错页面里加个自动转向,从而达到和之前总体持平的结果。一开始考虑用js的,后来突然想起我的空间是支持用asp页面来定义报错页的,所以就改用asp来完成了。不过,想来js同理也应该可以做到。
道理很简单,就是把当前页(不要取成了上一页,因为要考虑第一源的因素)的地址取出来,然后判断是属于哪个域名的访问源,“www”的就是真的报错,直接返回首页。“blog”的则改成替换http头就行了。值得注意的地方就是,404报错页网址一般会以目录+404页+加错误网址作为参数的形式生成,像本站:
www.goupwing.com/404.asp?404;http://www.goupwing.com:80/xxx.html
www.goupwing.com/blog/404.asp?404;http://www.goupwing.com:80/blog/xxx.html
所以,在实际运用过程可以先取网址,再来设定条件。
本站设置代码如下:
Dim scriptaddress,servername,ops,message<br />
scriptaddress = cstr(request.servervariables("script_name"))<br />
servername = cstr(Request.ServerVariables("server_name"))<br />
ops = request.querystring<br />
Function geturl() '取得当前页网址<br />
if ops <> "" then<br />
geturl ="http://"& servername & scriptaddress & "?" & ops<br />
else<br />
geturl ="http://"& servername & scriptaddress<br />
end if<br />
End Function<br />
Function checkurl() '检查是否需要转向<br />
if instr(1,geturl,"blog",1) <> 0 then<br />
ops = replace(ops,"404;http://www.goupwing.com:80/blog/","")<br />
checkurl = "http://ichov.com/" & ops<br />
message = "<p>悄悄的,"追风"的脚步也追出了国境线了。。。<br />请一定注意跟上我们的新脚印!!!</p>"<br />
else<br />
checkurl = "http://www.goupwing.com/"<br />
message = "<p>您要查看的网页不存在,或者已被删除!<br />请返回"朝天翼"首页查询!!!</p>"<br />
end if<br />
End Function<br />
%>
转向,head区域,调用函数网址:
内容,在需要的地直接输出“message”变量就行了。
可以看看本站的两个目录下的报错效果:
http://www.goupwing.com/blog/article.asp?id=710
http://www.goupwing.com/article.asp?id=710
暂无评论 Trackback Url:http://ichov.com/web/asp-404error.html/trackback


