利用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 实例全解析
Apr 20 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 Javascript
JS常用算法实现代码
Nov 14 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
关于RxJS Subject的学习笔记
Dec 05 Javascript
使用Jenkins部署React项目的方法步骤
Mar 11 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
Vue实现点击箭头上下移动效果
Jun 11 Javascript
uniapp开发小程序的经验总结
Apr 08 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设计模式 php实现门面模式(Facade)
2015/12/07 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
详解Vue 如何监听Array的变化
2019/06/06 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
一个SQL面试题
2014/08/21 面试题
内容编辑个人求职信
2013/12/10 职场文书
村官工作鉴定评语
2014/01/27 职场文书
师范大学生求职信
2014/06/13 职场文书
2014年电话客服工作总结
2014/12/09 职场文书
出生证明格式
2015/06/15 职场文书
化工生产实习心得体会
2016/01/22 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书