如何实现HTML网页自动跳转,这里有5种方法介绍给你

2020年6月7日技巧分享评论135,887字数 2799阅读9分19秒阅读模式

最新网站案例

最近在网上闲逛的时候发现了一个网站SEO优化做的很好,排名很靠前,然后头部流量却都被转到另外一个网站,成功了绕过了蜘蛛。
于是我研究了一下它的页面代码,发现有这样一句跳转的:

<script type="text/javascript">var ua = navigator.userAgent.toLowerCase();
if (ua.match(/Baiduspider/i) != "baiduspider" && ua.match(/Googlebot/i) != "googlebot" && ua.match(/Sogou/i) != "sogou" && ua.match(/YisouSpider/i) != "yisouspider") {
	window.location.href = "要跳转的放这里";
}</script>

具体原理我也不懂,很厉害的样子。
以后有机会我可以试一下。

网页自动跳转 5种方法

利用HTML标记(META中的REFRESH属性)

用HTML标记,就是用META的REFRESH标记,举例如下:

<meta http-equiv=refresh content="10;url=index.php">

其中content=10是10秒钟后跳转

【5种常见网页自动跳转方法】

网页自动跳转,是指当用户访问某个网页时,被自动跳转到另一个网页中去。

网页自动跳转的主要作用是,当域名变更后,或者网站里的一个或多个网页被删除后,可以使用这种方式将用户引导到其它正常的网页中去,从而留住用户。

不过,现在有许多人利用网页自动跳转来进行作弊,欺骗搜索引擎,从而实现提高网站搜索引擎排名的目的。比较典型的方式是:先做一个“桥页”,当搜索引擎收录了这个桥页,并有较高排名时,桥页中再使用网页自动跳转方式,将用户引导到用户本来无意访问的其它网页中去。

下面介绍一下五种常见的网页自动跳转方法,以及搜索引擎对这些跳转方法的辨识能力。

第一种网页自动跳转方法:meta refresh自动跳转法

在网页的head区域的meta refresh标签中,加入自动跳转代码,可实现网页的立即或延时自动跳转。示例如下:

<meta http-equiv="refresh" content="10;url= https://www.shejibiji.com/ ">

上述html代码中的“10”是延时跳转的时间,单位是秒。如果设为0,就表示立即跳转。https://www.shejibiji.com/是跳转的目标地址,可以是同一域名下的站内相对路径,也可以是不同域名的站外地址。 由于搜索引擎能够读取html,所以对于这种自动跳转方法,搜索引擎是能够自动检测出来的。
被视为作弊,则主要看跳转时间。如果跳转时间为0,就可能会被视为作弊,从而受到惩罚。
如果有时间延迟(一般3秒以上),就会被视为正常应用。

第二种网页自动跳转方法:body onload自动跳转法

在网页加载时通过onload事件指定parent.location进行自动跳转。示例如下:

<body onload="parent.location=' https://www.shejibiji.com' ">

这种方法与第一种方法一样,能够被搜索引擎识别。

第三种网页自动跳转方法:javascript自动跳转法

javascript可以实现网页的自动跳转,如果要实现立即跳转,将跳转代码放在网页的head区域即可。示例如下:

<script language="javascript"> location.replace(" https://www.shejibiji.com/yule/tietu/ ") </script>

其中的https://www.shejibiji.com/yule/tietu/是重定向目标地址。
由于搜索引擎无法解析javascript,所以搜索引擎便无法识别用javascript脚本进行的自动跳转。

第四种网页自动跳转方法:表单自动跳转法

对于表单大家都很熟悉,就是将表单中填写的内容,提交到action参数中指定的url地址中,目标url再对接收到的数据进行处理。
利用这一点,我们可间接的实现网页跳转,只不过,我们并不需要提交任何表单内容。
再结合javascript脚本,可以对表单进行自 动提交。 示例如下:

<form name="form1" action= https://www.shejibiji.com/index.html method="get"> </form> <script language="javascript"> document.form1.submit() </script> 

其中form1名称任意,但二处form1应该统一。
action中的url地址必须以文件名结尾,例如action= https://www.shejibiji.com/action= https://www.shejibiji.com/yule便是不规范写法。
method可以是get也可以是post,但根据我的经验,提交空表单时最好使用get。
众所周知,由于搜索引擎的蜘蛛程序是不会填写表单的,所以搜索引擎便无法识别通过这种方法实现的网页自动跳转。

第五种网页自动跳转方法:程序跳转法(response.redirect 、server.transfer)

每种程序都有各自的页面跳转方法,例如asp中使用response.redirect 来进行跳转,跳转范例如下:

response.redirect " https://www.shejibiji.com " 

它的作用是,asp程序运行到该行代码后,会立即跳转到目标url地址中去。
在asp中,除了使用response.redirect 做跳转外,还有一个跳转方法,用server.transfer进行跳转,跳转范例如下:

response.redirect "/yule/tietu/index.html" 

注意,这里的url地址,必须是站内地址,且url地址必须以文件名结尾,例如 response.redirect "/yule/tietu/" 便是错误用法。
response.redirect和server.transfer都能实现网页自动跳转。
但二者也有不同之处,前者可以跳转到站内url,也可以跳转到站外url,而后者只能跳转到站内文件,且浏览器地址栏的url将保持不变。
server.transfer还有许多好处,这里不多详述,大家可在搜索引擎中查找它的更多资料。
使用response.redirect 跳转虽然是在服务器端完成跳转的,但它最终是转换成html后在客户端执行的,因此,也能被搜索引擎识别,过多的使用亦会被当作作弊处理。
如果是在同一网站内部的不同网页间跳转,建议使用server.transfer跳转,server.transfer肯定不会被搜索引擎视为作弊。

在 Git 中如何撤销掉之前的某一次提交 技巧分享

在 Git 中如何撤销掉之前的某一次提交

今天同事提交了一次修改,我拉取了他的修改继续做了很多工作,并提交了多次。 在准备远程的时候,我审查了下他的代码,发现有严重的问题,那么如果我只想撤回他的那次提交,而保留我之后的提交,该怎么做呢? 可以...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定