利用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 相关文章推荐
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
Dec 23 Javascript
Javascript 入门基础学习
Mar 10 Javascript
js 创建快捷方式的代码(fso)
Nov 19 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
基于JavaScript实现右键菜单和拖拽功能
Nov 28 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 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 应用程序安全防范技术研究
2009/09/25 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
一个javascript参数的小问题
2008/03/02 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
详解Python当中的字符串和编码
2015/04/25 Python
python 异或加密字符串的实例
2018/10/14 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python自动登录QQ的实现示例
2020/08/28 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
2014年健康教育实施方案
2014/02/17 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
捐款通知怎么写
2015/04/24 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
Python基础之tkinter图形化界面学习
2021/04/29 Python
MySQL系列之八 MySQL服务器变量
2021/07/02 MySQL