emlog博客的伪静态设置后,文章的url不是唯一的,会显示好几种样式,这种情况下面的几种链接都是可以打开的
https://www.yukawang.com/post-101.html https://www.yukawang.com/xx/101.html, https://www.yukawang.com/?post=101 都是可以正常打开的,其中的XX为任意数字或者字母
我的网站就是这种情况,百度收录的这三种链接都有,非常不方便,对网站SEO也不友好,很可能会被判作弊。所以我就百度搜索了方法,这里介绍一个实测可用的方法。
本段代码通用代码,直接把下面代码放入echo_log.php和page.php第一行就可以了 <?php $page=isset($params[5])?intval($params[5]):1;//文章页代码 $ymurl=$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//浏览器获取URL //$emurl=preg_replace('/(http://|https://|)*/','',Url::log($logid));//去除http://或https://的默认url $emurl=str_replace(array("http://","https://"),'',Url::log($logid));//去除http://或https://的默认url if($emurl!=$ymurl && $page==1){//判断2者是否相同,是否第一页 header('HTTP/1.1 301 Moved Permanently'); header('Location:'.Url::log($logid));//不同时调整到默认URL } ?>
如何没有修改过em内核路径的朋友们建议使用以下代码(速度更快) <?php $page=isset($params[5])?intval($params[5]):1; if(BLOG_URL.trim(Dispatcher::setPath(),'/') !=Url::log($logid) && $page==1 && $p==''){ header('HTTP/1.1 301 Moved Permanently'); header('Location:'.Url::log($logid)); } ?>
注意,如果文章设置有分页,这些代码就会出错
评论