利用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 相关文章推荐
html下载本地
Jun 19 Javascript
arguments对象
Nov 20 Javascript
用一段js程序来实现动画功能
Mar 06 Javascript
Stop SQL Server
Jun 21 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
React项目动态设置title标题的方法示例
Sep 26 Javascript
详解JavaScript 事件流
Sep 02 Javascript
Vue2.0 ES6语法降级ES5的操作
Oct 30 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使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
javascript模拟post提交隐藏地址栏的参数
2014/09/03 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
domReady的实现案例
2016/11/23 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
shelve  用来持久化任意的Python对象实例代码
2016/10/12 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Python datetime模块使用方法小结
2020/06/18 Python
python 实现性别识别
2020/11/21 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
大学生毕业自我评价范文分享
2013/11/07 职场文书
员工保密协议书
2014/09/27 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书