利用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获取php变量的实现代码
Aug 10 Javascript
浅谈Javascript 执行顺序
Dec 18 Javascript
JavaScript中Cookie操作实例
Jan 09 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
jquery网页日历显示控件calendar3.1使用详解
Nov 24 Javascript
js实现产品缩略图效果
Mar 10 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
简单的三步vuex入门
May 20 Javascript
Vue 全家桶实现移动端酷狗音乐功能
Nov 16 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
用webAPI实现图片放大镜效果
Nov 23 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 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
Javascript 读后台cookie代码
2008/09/15 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
jquery pagination插件实现无刷新分页代码
2009/10/13 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
js实现抽奖功能
2020/11/24 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
学党史心得体会
2014/09/05 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
教师师德师风整改措施
2014/10/24 职场文书
追悼词范文大全
2015/06/23 职场文书
Python爬虫基础初探selenium
2021/05/31 Python