利用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 相关文章推荐
javascript编程起步(第七课)
Feb 27 Javascript
模仿JQuery sortable效果 代码有错但值得看看
Nov 05 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
js open() 与showModalDialog()方法使用介绍
Sep 10 Javascript
jquery实现的网页自动播放声音
Apr 30 Javascript
JavaScript实现文字与图片拖拽效果的方法
Feb 16 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
Vue.js 和 MVVM 的注意事项
Nov 07 Javascript
vuex实现及简略解析(小结)
Mar 01 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
Apr 25 Javascript
Vue CLI3中使用compass normalize的方法
May 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 class类的用法详细总结
2013/10/17 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
Vuex入门到上手教程
2018/06/20 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
python基础教程之常用运算符
2014/08/29 Python
python实现网站的模拟登录
2016/01/04 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
python实现K最近邻算法
2018/01/29 Python
python将txt文件读取为字典的示例
2018/12/22 Python
PyQt5实现简易计算器
2020/05/30 Python
Python初学者常见错误详解
2019/07/02 Python
scrapy头部修改的方法详解
2020/12/06 Python
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
暑期研修感言
2014/02/17 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
老员工辞职信范文
2015/05/12 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
居住证明范文
2015/06/17 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
解决MySQL报“too many connections“错误
2022/04/19 MySQL
Java设计模式之代理模式
2022/04/22 Java/Android