为了能够把这个问题解释清楚,这里我用实例来给大家分析一下跳转关系与规则不符的这个问题,
一:先来看一下我的新旧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']." ";之后,就可以了
跳转关系与规则不符要怎么办?
所属栏目:建站技术 更新时间:2022-04-20 点击: 次 文章来源:http://www.sznest.net/jzjs/3513.html
【上一篇】:小程序列表多个批量倒计时
【下一篇】:FTP上的文件不宜在线编辑
相关阅读
-
数据库操作工具类SqlHelper
classSqlHelper{public$conn;public$host="localhost";public$username="root";public$password="root";public$dbname="mydb";publicfunction__constr…
了解详情 >>
-
asp用正则批量替换过滤表中所有行的内容中的图片
SetHF=NewRegExp'建立正则表达式。HF.Pattern="《img[^>]*>"'设置模式、《请替换成英文的左尖括号。HF.IgnoreCase=True'设置是否区分字符大小写。HF.Global=True'设置全局可用性。Setconn=Server.CreateObject(…
了解详情 >>
-
删除bom标签或者bom头的php代码
有时程序的逻辑代码完全没有一问题,但是就是运行的时候出错,如果出现这种情况,那么有可能就是文件中包含了bom头所导致的,下面给出了php去除bom头的源代码,只要把下面的代码放到一个php的文件中,并且改好目录,然后运行那个文件就可以了//此文件用于快速测试UTF8编码的文件是不是加了BOM,并可自动移除=".";//修改此行为需要检测的…
了解详情 >>
-
如何解决网站上传大文件的问题?
为了服务器的网络安全,避免因为超大文件导致服务器故障,所以对文件上传的大小限制是很有必要的,但是有些客户又有上传大文件的需求,比如上传pdf或者压缩包这种格式的文件,那么碰到这种情况下,如何解决这个问题呢?在浏览器输出phpinfo();查看LoadedConfigurationFile这个参数可以获取php.info的文件位置1:如果上传的文件太大,会导致…
了解详情 >>
-
在phpmyadmin中创建数据库时如何修改默认编码?
在phpmyadmin中创建数据时默认的编码是latin1_swedish_ci,但是我们在开发网站创建数据时却需要使用utf8_general_ci这个编码,那么如何修改这个latin1_swedish_ci默认的编码为utf8_general_ci呢?第一步:先在Xampp的控制面板开启MYSQL第二步:登陆phpmyadmin,如果是xampp,一般登…
了解详情 >>
-
过滤html标签与标签之间的空格以及标签和内容之间的空格
<?phpob_start();?><pid="name">与左边的右尖括号有一个空格喔与右边的左尖括号有两个空格喔</a><p>与左边的右尖括号有三个空格喔</a><p>只与右边的左尖括号有四空格喔</a><p>两边没有空格但是中间有空格喔&…
了解详情 >>