利用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 错误处理的几种方法
Jun 13 Javascript
jquery中的sortable排序之后的保存状态的解决方法
Jan 28 Javascript
JavaScript 判断日期格式是否正确的实现代码
Jul 04 Javascript
jquery移动listbox的值原理及代码
May 03 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
javascript中cookie对象用法实例分析
Jan 30 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
Vue2.0 从零开始_环境搭建操作步骤
Jun 14 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
Aug 30 Javascript
最简单的JS实现json转csv的方法
Jan 10 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
May 14 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
Oct 16 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
Javascript typeof 用法
2008/12/28 Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
浅析使用Python操作文件
2017/07/31 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python正则中最短匹配实现代码
2018/01/16 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python全排列操作实例分析
2018/07/24 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
交通专业个人自荐信格式
2013/09/23 职场文书
2015年元旦活动总结
2014/05/09 职场文书
重阳节标语大全
2014/10/07 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
python运算符之与用户交互
2022/04/13 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers