利用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 相关文章推荐
jQuery Ajax文件上传(php)
Jun 16 Javascript
javascript闭包的理解和实例
Aug 12 Javascript
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
通过一段代码简单说js中的this的使用
Jul 23 Javascript
javascipt:filter过滤介绍及使用
Sep 10 Javascript
javascript实现五星评价代码(源码下载)
Aug 11 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
Sep 04 Javascript
D3.js实现拓扑图的示例代码
Jun 30 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
May 10 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 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防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Javascript模板技术
2007/04/27 Javascript
javascript数组的扩展实现代码集合
2008/06/01 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
2014/05/08 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
angular-cli修改端口号【angular2】
2017/04/19 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
python自定义类并使用的方法
2015/05/07 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python分析作业提交情况
2017/11/22 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
python多任务及返回值的处理方法
2019/01/22 Python
利用python开发app实战的方法
2019/07/09 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
网络安全方面的面试题
2016/01/07 面试题
旅游管理专业生自荐信范文
2014/01/02 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书