利用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 相关文章推荐
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
关于javaScript注册click事件传递参数的不成功问题
Jul 18 Javascript
老生常谈js-react组件生命周期
May 02 Javascript
JavaScript设计模式之单例模式详解
Jun 09 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
React降级配置及Ant Design配置详解
Dec 27 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
详解vue-property-decorator使用手册
Jul 29 Javascript
微信小程序用户登录和登录态维护的实现
Dec 10 Javascript
react antd实现动态增减表单
Jun 03 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 autoload机制的详解
2013/06/09 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
php探针不显示内存解决方法
2019/09/17 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
大学同学十年聚会感言
2014/02/21 职场文书
运动会班级口号
2014/06/09 职场文书
效能风暴心得体会
2014/09/04 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
项目备案申请报告
2015/05/15 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
浅谈克隆 JavaScript
2021/11/02 Javascript
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python