网站判断从百度搜索来的关键词 从而跳转到指定页面
2013-01-23 10:44
645 查看
在前人的一些代码修改之下,自己弄出来了一个这样的跳转方案,可能不是很完美,不过也花了不少时间总算还是实现了需求,以我现在的js能力只能做到这样了,改进可能要到以后了。看代码吧,直接用例子说话,一边解释最好。(现在觉得代码有时比说话简洁,呵呵)
先把下面代码另存为js文件,然后可以放在网页的任何位置,当然不影响网页加载速度优先。
然后是经过一个tiaozhuan.php 处理,代码如下
到这里基本实现我所要的功能,但我总觉得还可以更优化,希望高手能指正出不足的地方!
本文出自 “hnllyrp” 博客,请务必保留此出处http://hnllyrp.blog.51cto.com/2149641/1124465
先把下面代码另存为js文件,然后可以放在网页的任何位置,当然不影响网页加载速度优先。
var surl=document.location.href+"&from="+from;//自定义的一个来源 可以不要 var s=document.referrer; /***** 思路大概是: 获取从百度来的关键词 用我们自己的关键词匹配 匹配对了 跳转到指定网页 跳转到一个php文件的好处 是用表单做跳转 对seo影响较小 而且还可以在php里面加些自定义判断功能 其中有用到 站长工具(http://tool.chinaz.com/)的 url编码解码 大小写转换 js的 .test() 函数 是看能是否字符串匹配成功 *****/ var re=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E9%A3%8E%E6%B9%BF))/; //风湿 url编码 格式为utf-8的 var re1=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E9%AA%A8%E8%B4%A8%E5%A2%9E%E7%94%9F))/; //骨质增生 url编码 var re2=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E9%A2%88%E6%A4%8E%E7%97%85))/; //颈椎病 url编码 var re3=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E5%BC%BA%E7%9B%B4%E6%80%A7%E8%84%8A%E6%9F%B1%E7%82%8E))/; //强直性脊柱炎 url编码 var re4=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E7%97%9B%E9%A3%8E))/; //痛风 url编码 var re5=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E8%85%B0%E6%A4%8E%E7%97%85))/; //腰椎病 url编码 var re6=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E8%82%A9%E5%91%A8%E7%82%8E))/; //肩周炎 url编码 var re7=/((wd|q|w|p|query)(=)([%A-Z0-9]*)(%E5%93%81%E7%89%8C))/; //品牌 url编码 var curl=window.location.href; if(re.test(s)) { var iii = decodeURI('%E9%A3%8E%E6%B9%BF'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); //get传值 到tiaozhuan.php } else if(re1.test(s)) { var iii = decodeURI('%E9%AA%A8%E8%B4%A8%E5%A2%9E%E7%94%9F'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else if(re2.test(s)) { var iii = decodeURI('%E9%A2%88%E6%A4%8E%E7%97%85'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else if(re3.test(s)) { var iii = decodeURI('%E5%BC%BA%E7%9B%B4%E6%80%A7%E8%84%8A%E6%9F%B1%E7%82%8E'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else if(re4.test(s)) { var iii = decodeURI('%E7%97%9B%E9%A3%8E'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else if(re5.test(s)) { var iii = decodeURI('%E8%85%B0%E6%A4%8E%E7%97%85'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else if(re6.test(s)) { var iii = decodeURI('%E8%82%A9%E5%91%A8%E7%82%8E'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else if(re7.test(s)) { var iii = decodeURI('%E5%93%81%E7%89%8C'); yh_turn('http://www.120xbk.com/swt/tiaozhuan.php?a='+iii+'&from='+from,curl,1); } else { yh_turn('http://www.120xbk.com/swt/tiaozhuan.php',surl,1); } //模拟提交表单跳转 function yh_turn(url,domain,from) { function isURL(url){ return(/^(http(s?))\:\/\/([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?([\/\?]\S*)?$/.test(url)); } if(!isURL(url))return false; function doSubmit() { //hidden body document.writeln('<style type="text/css">body{display:none;}</style>'); //var tjurl = url+'?'+domain; var tjurl = url; document.write('<form name="myform" id="tj" action="'+tjurl+'" method="post" target="_self"></form>'); //document.myform.submit(); setTimeout('document.getElementById("tj").submit()',500); } if(from==1){ var s=document.referrer; if(s&&(s.indexOf("baidu.com")>0||s.indexOf("google.com")>0||s.indexOf("soso.com")>0||s.indexOf("sogou.com")>0)){ doSubmit(); } } if(from==0){ doSubmit(); //不经过百度 默认都跳转 } }
然后是经过一个tiaozhuan.php 处理,代码如下
<?php $refer = $_SERVER['HTTP_REFERER']; $from = $_GET['from']; //如果有来源 接收来源 $a = $_GET['a']; $b = urldecode($a); //将字符串以URL解码 //处理变量$refer $str=substr($refer,7);//去除前面 $n=strpos($str,'/');//寻找位置 if ($n) $str=substr($str,0,$n);//删除后面 $url_this = "http://".$_SERVER ['HTTP_HOST']; header("HTTP/1.1 301 Moved Permanently"); if($refer) { switch($b) { case '风湿': header("location:".$url_this."/tszl/20110805-527.html?".$str."&".$from);break; case '骨质增生':header("location:".$url_this."/bingli/gjzx/20110702-272.html?".$str."&".$from);break; case '颈椎病':header("location:".$url_this."/tszl/20110805-546.html?".$str."&".$from);break; case '强直性脊柱炎':header("location:".$url_this."/tszl/20110702-284.html?".$str."&".$from);break; case '痛风':header("location:".$url_this."/tszl/20110702-285.html?".$str."&".$from);break; case '腰椎病':header("location:".$url_this."/tszl/20110702-287.html?".$str."&".$from);break; case '肩周炎':header("location:".$url_this."/tszl/20110702-263.html?".$str."&".$from);break; case '品牌':header("location:".$url_this."/tszl/?".$str."&".$from);break; default: header("location:".$url_this."?".$str."&".$from);break; } } else exit; ?>
到这里基本实现我所要的功能,但我总觉得还可以更优化,希望高手能指正出不足的地方!
本文出自 “hnllyrp” 博客,请务必保留此出处http://hnllyrp.blog.51cto.com/2149641/1124465
相关文章推荐
- php如何判断用户是从指定页面跳转进来的
- asp.net网站首页根据IP自动跳转指定页面的示例
- 提高转化率之百度来源关键词跳转到天猫关键词搜索页
- 百度搜索结果页面的参数 关键词(wd|word|kw|keyword)
- 用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
- Asp.net实现网站提示信息页面后的定时自动跳转到指定页面
- 如何实现网站根据ip判断地区 自动跳转到所属地区页面【PHP版】
- JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
- 百度高度js 检测web页面是否正在操作,如超过规定时间内未操作将自动跳转至指定页面。
- 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!
- 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!
- php获取从百度搜索进入网站的关键词
- php获取从百度搜索进入网站的关键词
- JS判断手机端访问页面并跳转到指定页面
- 用python和BeautifulSoup抓取百度搜索结果10-20页面中的网站链接
- 如何利用JS判断当前来路域名并跳转到指定页面
- 如何利用JS判断当前来路域名并跳转到指定页面
- php获取从百度搜索进入网站的关键词
- asp.net网站首页根据IP自动跳转指定页面的示例