ASP定义动态404报错页

« 返回上页作者:乔夫  分类: 网事悠游  日期:2007-9-15 at 3:26  

一个空间目录下,子目录绑定多个域名的人可能有这需要。

也是这次只转移博客才遇到这样的问题,因为现在博客已不在“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

所以,在实际运用过程可以先取网址,再来设定条件。

本站设置代码如下:

&lt;%<br />
Dim scriptaddress,servername,ops,message<br />
scriptaddress = cstr(request.servervariables(&quot;script_name&quot;))<br />
servername = cstr(Request.ServerVariables(&quot;server_name&quot;))<br />
ops = request.querystring<br />
Function geturl() '取得当前页网址<br />
if ops &lt;&gt; &quot;&quot; then<br />
geturl =&quot;http://&quot;&amp; servername &amp; scriptaddress &amp; &quot;?&quot; &amp; ops<br />
else<br />
geturl =&quot;http://&quot;&amp; servername &amp; scriptaddress<br />
end if<br />
End Function<br />
Function checkurl() '检查是否需要转向<br />
if instr(1,geturl,&quot;blog&quot;,1) &lt;&gt; 0 then<br />
ops = replace(ops,&quot;404;http://www.goupwing.com:80/blog/&quot;,&quot;&quot;)<br />
checkurl = &quot;http://ichov.com/&quot; &amp; ops<br />
message = &quot;&lt;p&gt;悄悄的,&quot;追风&quot;的脚步也追出了国境线了。。。&lt;br /&gt;请一定注意跟上我们的新脚印!!!&lt;/p&gt;&quot;<br />
else<br />
checkurl = &quot;http://www.goupwing.com/&quot;<br />
message = &quot;&lt;p&gt;您要查看的网页不存在,或者已被删除!&lt;br /&gt;请返回&quot;朝天翼&quot;首页查询!!!&lt;/p&gt;&quot;<br />
end if<br />
End Function<br />
%&gt;

转向,head区域,调用函数网址:

&lt;meta http-equiv=&quot;refresh&quot; content=&quot;3;URL=&lt;%= checkurl %&gt;&quot; /&gt;&lt;/meta&gt;

内容,在需要的地直接输出“message”变量就行了。

&lt; %= message %&gt;

可以看看本站的两个目录下的报错效果:
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

有啥说啥 Leave a Reply