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

栏目:建站技术 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']." ";之后,就可以了

相关阅读

正则表达式收集汇总

2020-12-1268

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

纯CSS无表达式实现未知尺寸图片等比缩放(支持IE7及以上)

2020-10-1023

在制作网页的时候,常常会遇到一种情况,我们需要把一些未知尺寸的图片放在一个固定宽高的容器中,这时候我们需要考虑这样的问题:只给图片设置宽度或高度的其中一项可以实现图片等比缩放,但图片可能超出容器大小。给图片设置固定的宽高可能导致图片变形。有些人可能会简单地用JavaScript解决:代码如下:<imgsrc="image-url.png&qu…

帝国CMS-采集关键的经验总结

2020-10-1025

采集关键的几个步骤一:先建好栏目二:增加采集节点(需要选择栏目)三:录入节点名称四:如果有很多页,只需录入采集页面地址方式二中的内容地址为https://www.sznest.net/news.asp?big_class_id=3&page=[page]页码从1到多少页之间、间隔倍数为1(这个多少页即被采集的网站的实际页数,注意这里修改后,在采集页面…

access数据库的表如何导出到excel表?

2020-10-1092

其实要使access数据库导出到excel中很简单,只需要打开数据库,选中你要导出的表,然后选择菜单下面的外部数据,再选择excel即可,要导出时有两点需要注意,第一,只能单张的一个表一个表的导出,不能导出数据库,第二,一定要确保安装了excel软件,否则在外部数据那里可能找不到excel这个选项其实要导出到excel表还可以有另外一个反过来的办法,就是新建…

TP5请求信息与请求参数

2020-10-1061

<?phpnamespaceappindexcontroller;usethinkController;usethinkRequest;classIndexextendsController{publicfunctionindex(){//index/index/index/name/zs/age/18/sex/nan//使用函数助手不需要usethi…

日期格式如何转换?

2020-10-10158

日期格式常用的有哪几种?常用的日期格式有YYYY/MM/DD和YYYY-MM-DD,中间的分隔符一般用英文输入法的反斜杠或者短横杠,其中的字母Y是year的简写,表示年,M是month的简写,表示月,D是day的简写,表示日,示例2020/01/01,2020-01-01在excel中如何设置日期格式?在某个单元格内输入上面示例中的任何一种日期格式之后,然后…