博客一直积着几个小问题没有解决,上周一并处理掉了。现在写出来,也许某些点会对大家有所帮助。
1.对不同来路选择性开启HTTPS。
各个搜索引擎中,目前只有Google对HTTPS支持比较好,而百度等搜索引擎,对HTTPS是不待见的。前几个月我调整全站HTTPS后,百度的收录全部掉光了,结果十分悲惨。改回普通HTTP后,收录上升了一些。此次调整,便针对不同来路,给页面生成不同的链接。
思路:emlog中地址的生成均基于BLOG_URL常量,仅需调整此常量即可。init.php对BLOG_URL常量进行初始化。
将define('BLOG_URL', Option::get('blogurl'));
改为
if(strstr(strtolower($_SERVER['HTTP_USER_AGENT']), 'baidu')){
define('BLOG_URL', Option::get('blogurl'));
} else {
define('BLOG_URL', str_replace('http', 'https', Option::get('blogurl')));
}
另外,此时首页ajax模块如日历等在https下可能会非正常,需要修改include/lib/function.base.php
。getBlogUrl函数改为
function getBlogUrl() {
$phpself = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : '';
if (preg_match("/^.*\//", $phpself, $matches)) {
if($_SERVER['SERVER_PORT']=='443') {
return 'https://' . $_SERVER['HTTP_HOST'] . $matches[0];
} else {
return 'http://' . $_SERVER['HTTP_HOST'] . $matches[0];
}
} else {
return BLOG_URL;
}
}
这时百度蜘蛛便不会因为https而不收录了,因为它还是爬行到http页面。我个人只在意百度的收录,其他搜索引擎没有作考虑。若需支持其他,遍历一个数组即可。
2.防垃圾评论。
来自外国的各类垃圾评论十分恼人,删了又发发了又删,开验证码,开强制中文也无济于事。通过观察这类垃圾评论不难发现,正文中均有html的<a>
标记。因为emlog目前不支持html代码评论,所以不存在误判问题,我们只需判断评论中是否有这样的标记即可。
修改include/controller/comment_controller.php
,第34行开始是对评论的检测,我们加一块elseif
就行啦。