您当前的位置:易学堂 > EM&TP

Emlog伪静态URL统一

时间:2019-02-10 12:11:00

使用EM博客程序的朋友应该知道,伪静态后URL不是唯一性的,举个很简单的例子:

标准URL为:http://域名/1.html但同时URL:http://域名/xx/1.html,http://域名/?post=xxx也正常打开,其中的XX为任意数字或者字母
 

0.jpg

这个是因为伪静态规则的问题,因为正则匹配 /([^./?=]+)(.html) 可以匹配/ 开始 一个或多个 不是 . / ? = 之外的字符 然后.html 结束的字符串所以不管你加什么,都只会匹配 /1.html 这一部分,那么如何解决这一问题呢?PHP代码301跳转,亲测可用!

本段代码通用代码,直接把下面代码放入echo_log.php和page.php第一行就可以了,本站目前使用中:

<?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));
}
?>
标签: URLEmlog