利用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 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
JQUERY操作JSON实例代码
Feb 09 Javascript
javascript 操作select下拉列表框的一点小经验
Mar 20 Javascript
jQuery实现强制cookie过期方法汇总
May 22 Javascript
JavaScript如何实现跨域请求
Aug 05 Javascript
jQuery事件对象总结
Oct 17 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
AngularJS select设置默认值的实现方法
Aug 25 Javascript
微信小程序报错:this.setData is not a function的解决办法
Sep 27 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 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中一些可能会被忽略的问题
2013/06/21 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
jQuery Form表单取值的方法
2017/01/11 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
法国设计制造的扫帚和刷子:Andrée Jardin
2018/12/06 全球购物
小区门卫管理制度
2014/01/29 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
结婚喜宴主持词
2014/03/14 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
贷款收入证明格式
2015/06/24 职场文书
《检阅》教学反思
2016/02/22 职场文书
基于Python实现西西成语接龙小助手
2022/08/05 Golang