跳转关系与规则不符要怎么办?

所属栏目:建站技术 发布时间:2020-10-30 点击: 文章来源:https://www.sznest.net/html/list2show.php?id=3513

为了能够把这个问题解释清楚,这里我用实例来给大家分析一下跳转关系与规则不符的这个问题,

一:先来看一下我的新旧url
新旧url链接文件:gaiban.txt中的内容
域名/productshow.php?id=29 域名/sbzsshow.php?id=29
域名/productshow.php?id=2 域名/cpzsshow.php?id=78

二:再来看一下productshow.php文件中重定向的代码
$txt = file_get_contents('gaiban.txt');
$result = preg_split('/[;\r\n]+/s', $txt);
$oldurl = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
foreach ($result as $key => $value) {
  if(!(strpos($oldurl,"www") !==false)){
      $oldurl = "www.".$oldurl;
  }
  if(strpos($value,'http://'.$oldurl) !==false){
      $arr = explode(" ", $value);
      header('HTTP/1.1 301 Moved Permanently');
      Header("Location:".$arr[1]);
      exit;
  }
}将上面的新旧url提交给百度之后,就会提示productshow.php?id=2这个链接跳转关系与规则不符,那么为什么是productshow.php?id=2而不是productshow.php?id=29呢?

因为在上向在重定向的代码中在搜索匹配时没有考虑到旧url后面的空格,所以当前旧的网址如果是productshow.php?id=2的时候会先匹配到productshow.php?id=29,所以就重定向到了sbzsshow.php?id=29了,而productshow.php?id=29也是重定向了sbzsshow.php?id=29,所以有两个不同的旧的url指向了同一个新的url,所以才导致了链接跳转关系与规则不符,所以要解决这个问题的办法就是在搜索匹配旧url的时候一定要考虑到空格,所以上面的重定向的代码$oldurl = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];改成$oldurl = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']." ";之后,就可以了

相关阅读

中英文混和的字符串的ASCII…

//1:获取中英文混合字符的编码(ASCII码与UNICODE码)$str="官网制作:网…

了解详情 >>

用火狐打开百度一直加载s1.b…

一直用火狐浏览器,火狐浏览器插件多,很合适网页开发人员使用,以前一直用的好好的,但是今天使用的时候突…

了解详情 >>

asp用正则批量替换过滤表中所…

SetHF=NewRegExp'建立正则表达式。HF.Pattern="《img[…

了解详情 >>

删除bom标签或者bom头的p…

有时程序的逻辑代码完全没有一问题,但是就是运行的时候出错,如果出现这种情况,那么有可能就是文件中包含…

了解详情 >>

小程序的下单与支付的业务流程

1:小程序携带商品信息调用第三方服务器的下单API2:第三方服务器下单API对小程序带来的商品作库存…

了解详情 >>

TP5 请求信息与请求参数

<?phpnamespaceappindexcontroller;usethinkContro…

了解详情 >>

Copyright @ 2008-2019   www.sznest.net   All rights reserved  专注于免费建站,自助建站,模板建站,选免费模板免费送香港空间,选收费模板先建站后付款   粤ICP备11083046号       

微信

移动端

客服

顶部