利用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判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
用jQuery打造TabPanel效果代码
May 22 Javascript
Javascript自定义排序 node运行 实例
Jun 05 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
Node.js操作mysql数据库增删改查
Mar 30 Javascript
js中获取时间new Date()的全面介绍
Jun 20 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
浅析JavaScript中var that=this
Feb 17 Javascript
Node.js中sequelize时区的配置方法
Dec 10 Javascript
原生JS实现$.param() 函数的方法
Aug 10 Javascript
js回文数的4种判断方法示例
Jun 04 Javascript
layUI实现三级导航菜单效果
Jul 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
smarty模板中拼接字符串的方法
2014/02/14 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
jquery 循环显示div的示例代码
2013/10/18 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
详解vue的数据binding绑定原理
2017/04/12 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
Python实现基于HTTP文件传输实例
2014/11/08 Python
Cpy和Python的效率对比
2015/03/20 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
python中的for循环
2018/09/28 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
python实现飞行棋游戏
2020/02/05 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
本科生自荐信
2014/06/18 职场文书
大学生见习报告总结
2014/11/04 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
聊聊JS ES6中的解构
2021/04/29 Javascript
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript
SQL Server内存机制浅探
2022/04/06 SQL Server
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL