SEO:百度收录了一些带参数的链接,打开是首页

一、异常链接被收录

域名http://www.abc.com 发现很多http://www.abc.com/?abc 等,域名后面直接加?xxxx动态参数,打开依然是首页。

二、问题分析

① 怎么来的?
链接具体是怎么来的,不清楚,网站中是没有的,访问日志中也有不少这种链接的访问。
② 为什么域名后面加?和参数依然能打卡首页?
http协议中,问号代表后面是参数。打开是肯定可以打开的,如果禁止打开,那就没办法传参数了,网页就是纯静态了。能打开没毛病,不要打程序员。

三、问题处理

处理原理:链接中包含?加参数可以正常打开,这是正常的。但是正常链接应该是http://www.abc.com/product.php?xxx 。中间是有文件名的。利用这个原理,来屏蔽掉没有文件名却有参数的访问。
处理方法有两种:
① 通过robots.txt屏蔽。
原理:通过robots.txt禁止蜘蛛抓取。
处理方法:robots.txt中加入"Disallow: /? ",禁止蜘蛛抓取/?的链接。

User-agent: *
Disallow: /?

② 通过PHP屏蔽掉域名后面直接跟参数的链接。
原理:通过PHP判断url请求参数的前两位是否是/? 。如果是,则301跳转或者跳转404。
处理方法:在入口文件加入以下代码。

<?php
$request_uri =  $_SERVER["REQUEST_URI"];
$param_head2 = substr($request_uri,0,2);
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$domainName = $_SERVER['HTTP_HOST'];
$site_url = $protocol . $domainName;
if($param_head2=='/?'){
    //跳转404
  //header("HTTP/1.0 404 Not Found");
    //header('Location: /404.htm');
    //301跳转到首页
  header('HTTP/1.1 301 Moved Permanently');
    header('Location: '.$site_url.'/');
}
?>

You May Also Like

About the Author: 萌新

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注