利用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 相关文章推荐
基于Web标准的UI组件 — 树状菜单(2)
Sep 18 Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 Javascript
jqTransform美化表单
Oct 10 Javascript
有关Promises异步问题详解
Nov 13 Javascript
基于jquery实现弹幕效果
Sep 29 Javascript
JS去除重复并统计数量的实现方法
Dec 15 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 Javascript
Vue.js的模板语法详解
Feb 16 Javascript
微信小程序实现简单购物车功能
Dec 30 Javascript
Vue3中的Refs和Ref详情
Nov 11 Vue.js
一些不错的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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
php微信开发之谷歌测距
2018/06/14 PHP
22点关于jquery性能优化的建议
2014/05/28 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
python的文件操作方法汇总
2017/11/10 Python
python基于ID3思想的决策树
2018/01/03 Python
pygame实现成语填空游戏
2019/10/29 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
python的setattr函数实例用法
2020/12/16 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
《雨点》教学反思
2014/02/12 职场文书
护理专业求职信
2014/06/15 职场文书
廉政教育的心得体会
2014/09/01 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
如何在python中实现ECDSA你知道吗
2021/11/23 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android