利用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 相关文章推荐
jQuery技巧总结
Jan 01 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
Jan 12 Javascript
node.js中的url.resolve方法使用说明
Dec 10 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
超全面的javascript中变量命名规则
Feb 09 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
原生js实现放大镜
Feb 20 Javascript
jQuery异步提交表单实例
May 30 jQuery
不到200行 JavaScript 代码实现富文本编辑器的方法
Jan 03 Javascript
JS中this的指向以及call、apply的作用
May 06 Javascript
js for终止循环 跳出多层循环
Oct 04 Javascript
详解JS ES6编码规范
May 07 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制作简单的内容采集器的代码
2007/11/28 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
实测jquery data()如何存值
2013/08/18 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python实现大文件排序的方法
2015/07/10 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
django的登录注册系统的示例代码
2018/05/14 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
《埃及的金字塔》教学反思
2014/04/07 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
2014年幼师工作总结
2014/11/22 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书