Z-Blog 2.x 的 robots.txt 怎么写

首先,来看关于robots.txt的介绍。Z-Blog 2相对于1.8变化很大,其中文件目录的变化相当大,原来的robots.txt已经不适用了。

下面是我的简单生活使用的robots.txt

User-agent: *
Disallow: /zb_system/
Disallow: /zb_users/
Disallow: /search.asp*
Disallow: /view.asp*
Disallow: /catalog.asp*
Sitemap: https://www.wilf.cn/sitemap.xml

如果没有设置分类页的伪静态,请去掉

Disallow: /catalog.asp*

如果不想屏蔽某个插件或上传附件的收录,请去掉Disallow: /zb_users/,并相应的修改为

Disallow: /zb_users/CACHE
Disallow: /zb_users/INCLUDE
# 目录请自行补齐……

最后一行是在这里加上sitemap的链接

Sitemap: https://www.wilf.cn/sitemap.xml

关于 Z-Blog 的垃圾评论防治的若干办法

SPAM虽然目前博客更新的频率很低,不过我不会放弃,就这么一直坚持着。相信很多Z-Blog用户和我一样,深受垃圾评论的困扰。针对Z-Blog的垃圾评论软件越来越高明,博客的垃圾评论泛滥。我宁愿一个评论也没有,也不要以任何借口为理由的垃圾评论。

使用nofollow、重定向链接这些就不说了,没用,绝对没用。

一、开启验证码,并复杂化

只是简单的开启验证码其实已经一点作用也没有了,接着往下看。简单说一下,验证码是怎么被机器识别的:

Z-Blog的验证码被很多人研究过,尤其是SPAM软件开发者,Z-Blog默认的验证码是带有杂点的5位数字字符串,固定的图片高度和宽度(很多用户不会去修改默认的验证码图片高度和宽度),而这个算法从05年开始就一直没有变过。有了这些条件,配合ORC图文识别等技术,识别率90%以上绝对不成问题。

现在知道SPAM软件是怎么识别,对付SPAM就简单多了。

1、默认的验证码只有数字,我们可以在后台设置中增加英文字符,不过验证码图片对英文字符支持的不是很好,英文字母往往不容易分辨清楚
2、调整验证码图片尺寸,在后台里也可以设置 继续阅读

Z-Blog 站内搜索优化

使用Z-Blog的朋友也许都发现了,Z自带站内搜索的结果,摘要部分会有原始的html代码,那么也许你要问,为什么不直接显示html格式呢?

搜索结果是在内容部分 上行100个字符、下行200个字符,这时候就没办法控制不截断html代码,截断的几率还是很大的,所以只好把html代码转换成可以显示的格式一起搜索了。

那么我们有什么办法解决这样的问题呢?先看百度和Google,随便搜索一个结果,你会发现结果部分既没有html代码也不是html格式,见下图。搜索引擎爬虫抓站导入数据库的时候也是要过滤掉html代码的。

站内搜索就是一个简单的搜索引擎,如果我们把需要搜索字段的html先过滤掉,效果应该更好一些。当然了,也就不会出现奇怪的html代码在页面上了。

下面说一下针对Z-Blog的修改,打开FUNCTION/c_system_lib.asp,大约574行

ASP代码复制内容到剪贴板
  1. aryTemplateTagsValue(4)=Search(TransferHTML(Intro & Content,“[html-format]”),Request.QueryString(“q”))

找到上面的代码,修改为

ASP代码复制内容到剪贴板
  1. aryTemplateTagsValue(4)=Search(TransferHTML(Intro & Content,“[html-format][nohtml]”),Request.QueryString(“q”))

注:TransferHTML为Z-Blog自带的函数,[html-format]、[nohtml]均为可选参数,可以参考 FUNCTION/c_function.asp

就是这么多了,也许你要说用插件解决这个问题,这里我觉得还是直接修改源码更好。

鲜果 Digg 1.0 for Z-Blog 1.8

一、插件简介

鲜果提供的 Digg 服务,个人觉得挺不错的,以前是直接修改代码的,今天花点时间做成插件。如果你也在使用鲜果的话,那么可以尝试一下。更多鲜果 Digg:http://xianguo.com/tools/digg_button

二、插件说明

  1. 提供后台进行相关配色处理,并且可以预览
  2. 可以设置插件插入代码的位置(文章顶部/底部)
  3. 安装插件时会在当前主题样式的css中增加
.XianguoDigg{
float:rightright;
padding:10px;
}

以上css代码为控制左右位置,默认为右侧,可以自己修改主题样式。 继续阅读

“ActivePlugin_插件ID名称”函数是必须的

Z-Blog 在1.8版中加入了类似WordPress的插件机制,可谓强大。抱着学习的态度,我也试着写了一些插件,小试牛刀。

不过在开发插件的过程中有个问题很让人不解,如果插件有include文件,这个文件可能导致排序在该插件后面插件的include.asp无效。所以,常常有人在论坛中发帖询问 htmldefault 、sitemaps 等插件无效的问题。其实很早以前就有发现这个问题,但是仔细检查过出错插件的include.asp,很可惜没有发现问题所在。

今天终于发现了一点端倪,如果include.asp中没有挂入接口的函数,便会导致以上问题。

ASP/Visual Basic代码
  1. Function ActivePlugin_插件ID名称()  
  2.   Call Add_Action_Plugin("目标接口","具体执行代码")  
  3. End Function  

Z-Wiki里有相关文档:http://wiki.rainbowsoft.org/doku.php?id=plugin:doc#%%8C

也就是说,“ActivePlugin_插件ID名称”函数是必须的,即使这个函数什么也不做,空在那里。

Z-Blog 自带数据库插件升级解决方案

首先,这篇文章是写给Z-Blog插件开发人员作为参考的,仅仅提供一种思路。

新版Z-Blog中的PluginS插件已经支持检测插件版本了,给插件的安装和升级带来了很多方便。但是插件升级的同时可能造成插件数据库已经配置文件的覆盖,也就是说,升级后你可能只拥有一个初始化的插件。

这里提供一个方案,由插件自己解决这个问题,下面是相册插件windsphoto的include.asp部分代码,发出来说明一下,供参考。

include.asp部分代码

'定义数据库路径
Const WP_DATA_PATH="data/12345.mdb"
'注册插件
Call RegisterPlugin("WindsPhoto","ActivePlugin_WindsPhoto")
'安装插件
Function InstallPlugin_WindsPhoto()
On Error Resume Next
Call SetBlogHint_Custom("? 提示:[WindsPhoto]已启用,现在进入初始化系统设置.")
Call WindsPhoto_Rebackup_Include()
Call WindsPhoto_Database_Rename()
Err.Clear
End Function
'首次安装数据库改名....
Function WindsPhoto_Database_Rename()
Dim fso, f, s, pathnew, ranNum
randomize
ranNum=int((99-10+1)*rnd+99)
pathnew=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum& ".mdb"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.fileexists(BlogPath & "/plugin/windsphoto/data/winds.mdb") Then
Set f = fso.GetFile(BlogPath & "plugin/windsphoto/"& WP_DATA_PATH)
f.name=pathnew
Set f = Nothing
Dim strContent,strWP_DATA_PATH
strContent=LoadFromFile(BlogPath & "/PLUGIN/WindsPhoto/include.asp","utf-8")
strWP_DATA_PATH="data/" & pathnew
Call SaveValueForSetting(strContent,True,"String","WP_DATA_PATH",strWP_DATA_PATH)
Call SaveToFile(BlogPath & "/PLUGIN/WindsPhoto/include.asp",strContent,"utf-8",False)
End If
Set fso=nothing
End Function
'还原备份设置
Function WindsPhoto_Rebackup_Include()
Dim strContent,fso
Set fso=server.createobject("Scripting.Filesystemobject")
If fso.fileexists(BlogPath & "/plugin/windsphoto/include.asp.bak") Then
strContent=LoadFromFile(BlogPath & "/plugin/windsphoto/include.asp.bak","utf-8")
Call SaveToFile(BlogPath & "/plugin/windsphoto/include.asp",strContent,"utf-8",True)
'删除初始数据库
Call DelSiteFile("/plugin/windsphoto/data/winds.mdb")
'跳转到插件设置
Response.Redirect "../plugin/windsphoto/admin_setting.asp"
End If
Set fso=nothing
End Function

继续阅读

Z-Blog新浪博客主题系列【第一季】

一、说明

新浪博客的模板很丰富,其中不乏一些优秀的作品,移植了几个认为不错的。

其中包含五款风格各异的style,分别为【灰色轨迹】、【音乐旋风】、【轻描淡写】和两款【春节样式】。

如同帖子的标题,这是第一季,以后还会有更多的优秀style增加进来。我们也学习美剧,第一季、第二季、第三季……

全部为两栏风格,宽度为770px,侧边栏为200-210px。

PS1:顶部的搜索框效果是我学习Washun同学的,偷学,希望你看到不要介意。

二、预览

见这里就好了,或者你还可以去论坛,帖子的地址是http://bbs.zblogcn.com/thread-20127-1-1.html

继续阅读

Z-Blog 1.7 双向相关文章修改

Z-Blog 1.7版本默认的是只关联所在文章id号之前(既此前发表的)的文章,也就是说,相关文章变成了单向的,这是考虑了索引速度的优化,如果希望回到1.6版本的状态,可以做下面的修改

修改文件:function/c_system_lib.asp,Export_Mutuality()函数内部,

strSQL="SELECT TOP "& ZC_MUTUALITY_COUNT &" [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Level],[log_AuthorID],[log_PostTime],[log_CommNums],[log_ViewNums],[log_TrackBackNums],[log_Url],[log_Istop] FROM [blog_Article] WHERE ([log_Level]>2) and [log_id]<" & id

改为

strSQL="SELECT TOP "& ZC_MUTUALITY_COUNT &" [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Level],[log_AuthorID],[log_PostTime],[log_CommNums],[log_ViewNums],[log_TrackBackNums],[log_Url],[log_Istop] FROM [blog_Article] WHERE ([log_Level]>2) and [log_id]<>" & id

只修改了结尾部分。