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

栏目:建站技术 2022-04-20

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

一:先来看一下我的新旧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('/[;]+/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与UNICODE编码与解码

2020-10-10200

//1:获取中英文混合字符的编码(ASCII码与UNICODE码)$str="官网制作:网巢网络";foreach(math($str)as$key=>$value){if(preg_match('/^[x{4e00}-x{9fa5}]+$/u',$value)){//中文,注意中文这里暂时不转换,因为无法通过chr…

正则表达式收集汇总

2020-12-12101

搜索:empty(($)tr['([a-z]{1,})']),可以查找这样的empty($tr['digest']),然后可以替换成!$digest替换:!$1$2匹配A标签的超连接的正则表式如下$pattern="/<a[^>]+?href=["']?([^"']+)…

如何让你的PHP网站变得更安全

2020-10-10106

安全配置一(1)打开php的安全模式php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,但是默认的php.ini是没有打开安全模式的,我们把它打开:safe_mode=on(2)用户组安全当safe_mode打开时,sa…

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

2020-10-10243

1:小程序携带商品信息调用第三方服务器的下单API2:第三方服务器下单API对小程序带来的商品作库存量检测3:如果检测通过,第三方服务器就会保存这个订单并且告之小程序下单成功4:小程序调用第三方服务器的支付api5:第三方服务器API调用微信的预订单API[WxPayApi::unifiedOrder](注意第三方服务器是无法完成支付的,这个订单实际是在微信…

为什么小程序的页面有二次跳转时会瞬间显示一下第一次的页面再跳转呢?

2020-10-10470

为什么小程序的页面有二次跳转时会瞬间显示一下第一次的页面再跳转呢?navigateToredirectToswitchTabtabBar先来看示例代码并且在微信开发者工具上测试下面看示例代码共有三个页面,分别是indexproductshowcartindex的js与wxmlPage({/*跳转到商品详情*/toProductshow:function(ev…

小程序倒计时wxml与js

2020-10-1085

小程序倒计时jsPage({data:{windowHeight:654,maxtime:"",isHiddenLoading:true,isHiddenToast:true,dataList:{},countDownDay:0,countDownHour:0,countDownMinute:0,countDownSecond:0,},/…