利用404错误页面实现UrlRewrite的实现代码


Posted in Javascript onAugust 20, 2008

将下面代码保存到err404.html,然后设置404错误页面为err404.html页;

<script type="text/javascript" language="javascript"> 
var id=/(detial|show)\.asp\?id\=([0-9]+)/gi; 
var flag=/([a-z0-9_]+)\.asp\?flag\=xml/gi; 
var re_id=/(detial|show)\_([0-9]+)\.html/gi; 
var re_flag=/([a-z0-9_]+)\.rss/gi; 
var host='blog.ii-home.cn'; 
var ss=window.location.href; 
//ss=ss.replace(window.location.hostname,host); 
var Temp=getasp(ss); 
getNotice(Temp); 

function createobj() { 
if (window.ActiveXObject) { 
return new ActiveXObject("Microsoft.XMLHTTP"); 
} 
else if (window.XMLHttpRequest) { 
return new XMLHttpRequest(); 
} 
} 

function getNotice(url) { 
var oBao=createobj(); 
var my_url=url; 
oBao.open('get',my_url,false); 
oBao.onreadystatechange=function(){ 
if(oBao.readyState==4){ 
if(oBao.status==200){ 
var returnStr=oBao.responseText; 
var Temps=gethtml(returnStr); 
document.write(Temps); 
}else{ 
document.write("未找到您输入的地址或服务器505错误!"); 
} 
} 
} 
oBao.send(null); 
} 

//将str中的asp网址按照正则替换 
function gethtml(str){ 
var Temp_str=str.replace(id,'$1_$2.html'); 
Temp_str=Temp_str.replace(/index\.asp/gi,'index.html'); 
Temp_str=Temp_str.replace(/myfiles\.asp/gi,'myfiles.html'); 
Temp_str=Temp_str.replace(/mydiary\.asp\?typ\=self/gi,'mydiary_self.html'); 
Temp_str=Temp_str.replace(/mydiary\.asp/gi,'mydiary.html'); 
Temp_str=Temp_str.replace(flag,'$1.rss'); 
Temp_str=Temp_str.replace(/xml_diary\.asp/gi,'xml_diary.html'); 
Temp_str=Temp_str.replace(/xml_download\.asp/gi,'xml_download.html'); 
Temp_str=Temp_str.replace(/xml_links\.asp/gi,'xml_links.html'); 
Temp_str=Temp_str.replace(/xml_ly\.asp/gi,'xml_ly.html'); 
Temp_str=Temp_str.replace(/ly\.asp/gi,'ly.html'); 
//Temp_str=Temp_str.replace(/href=\"(http){0}/gi,'href="http://blog.ii-home.cn/'); 
return(Temp_str); 
} 

//将URL替换成原地址 
function getasp(str){ 
var Temp_str=str.replace(re_id,'$1.asp?id=$2'); 
Temp_str=Temp_str.replace(/index\.html/gi,'index.asp'); 
Temp_str=Temp_str.replace(/myfiles\.html/gi,'myfiles.asp'); 
Temp_str=Temp_str.replace(/mydiary\.html/gi,'mydiary.asp'); 
Temp_str=Temp_str.replace(/mydiary\_self.html/gi,'mydiary.asp?typ=self'); 
Temp_str=Temp_str.replace(/xml_diary\.html/gi,'xml_diary.asp'); 
Temp_str=Temp_str.replace(/xml_download\.html/gi,'xml_download.asp'); 
Temp_str=Temp_str.replace(/xml_links\.html/gi,'xml_links.asp'); 
Temp_str=Temp_str.replace(/xml_ly\.html/gi,'xml_ly.asp'); 
Temp_str=Temp_str.replace(/ly\.html/gi,'ly.asp'); 
Temp_str=Temp_str.replace(re_flag,'$1.asp?flag=xml'); 
return(Temp_str); 
} 
</script>

一般来说通过js才可以获取当前404页面网址,如果是asp、php获取的就是404页面的url,所以结合js与php或asp比较好。

例如:通过404触发asp执行一些操作

<script>
var pathname = window.location.pathname;
location.replace("/do.asp?p="+pathname);
</script>

注意:一般情况下不会给太高权限的服务器,不能复制等操作。

Javascript 相关文章推荐
文本链接逐个出现的js脚本
Dec 12 Javascript
dwr spring的集成实现代码
Mar 22 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
Dec 26 Javascript
javascript延时加载之defer测试
Dec 28 Javascript
鼠标滚轮改变图片大小的示例代码
Nov 20 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
Aug 08 Javascript
JavaScript实现随机数生成器(去重)
Oct 13 Javascript
利用10行js代码实现上下滚动公告效果
Dec 08 Javascript
3种vue路由传参的基本模式
Feb 22 Javascript
微信小程序非跳转式组件授权登录的方法示例
May 22 Javascript
让你30分钟快速掌握vue3教程
Oct 26 Javascript
一些不错的js函数ajax
Aug 20 #Javascript
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
Aug 14 #Javascript
jquery之Document元素选择器篇
Aug 14 #Javascript
JavaScript国旗变换效果代码
Aug 13 #Javascript
js活用事件触发对象动作
Aug 10 #Javascript
JS支持带x身份证号码验证函数
Aug 10 #Javascript
js获取div高度的代码
Aug 09 #Javascript
You might like
PHP flock 文件锁详细介绍
2012/12/29 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
2014/06/20 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python模拟登录12306的方法
2014/12/30 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
委托证明的格式
2014/01/10 职场文书
读书演讲主持词
2014/03/18 职场文书
计生专干事迹
2014/05/28 职场文书
大学生简历求职信
2014/06/24 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
工作证明英文模板
2014/10/21 职场文书
安全教育第一课观后感
2015/06/17 职场文书
2015年暑假生活总结
2015/07/13 职场文书
妇产科护理心得体会
2016/01/22 职场文书