WordPress Plugin:Permalinks Migration 解决永久连接难题
先说一些:我个人是非常反感中文里夹杂着英文的,不仅仅是Blog里,包括平时的对话里。我甚至反感到,认为这些人极度变态可耻。我就搞不明白一个中国人连母语都讲不好还他妈的夹杂着英语,这个人的智商是个什么程度?
当然了,有一些特殊情况:
1.纯英文写作。像林语堂那样,整部作品都用英文来写,或者像Yee那样开个英文Blog。
2.个别字词的中文翻译,难以言明原意。比如上面的Blog,如果我叫做”博客”,我觉得很别扭。
3.一些特别需要,出现少量的、次数较少的英文。比如WordPress的日志标题。
而我比较倒霉,总会遇见些傻逼。一句中文里夹几个英文,而且是夹几个中文可以完美翻译的英文。这令我很纳闷,很揪心。退一步说,如果整句写成英文吧,也好,但总是半生不熟地搞几个进去。那天我看见一个回帖是这样的:把那个改一改吧,早move了。我当时就特别生气,回贴表明我的诧异。move他妈的不就是个移动么?操。
讲英文并没有什么不好,但不要装着会讲英文的样子在中文语境下吵个没完。要么你就来真的。
另外,我还很好奇也有一点讨厌的是文中的”我”一律为”xxx”,xxx为作者名字。像宋祖德往往会说,”祖德认为,傻逼才应该这么说”…………
上面这些比较情绪化,下面我们说插件。
最初的时候我的永久连接格式为”/%year%/%monthnum%/%day%/%postname%/”,没等搜索引擎收录,我就改成了” /post/%post_id%”,目前搜索引擎里多是后者,还有以前在ASP的PJBLOG时的”article.asp?id=xxx”。在”我的WordPress使用心得“里,我说我曾想过更改永久连接格式,改成%yearmonthnumday%/%postname%/date/格式,但怕跑出N个404页来,于是就没改。但是上面这个格式是非常好的,尤其是,你的blog里会有一些英文信息的时候。今天在这里看到一个插件Permalinks Migration(下载),永久连接群迁,它可以在你更改永久连接后,将你的旧连接转向到新连接,我试了一下,效果很好。上传插件,启用,在设置里的Permalinks Migration选项里填写你永久连接的旧格式,再去设置里的永久连接里更改你的新格式。这样访客在浏览的旧地址(比如我的是post/post_id像这个,post/50,也可以是p?=50等)时,它会自动转到相应的新地址,比如post/dreamhost-promo-code-caodan-save-97-dao。这个插件作者是中国人,他的Blog大部分是用英文写的,他目前是35网的技术总监(Wealink)。

在作者波波的允许下,我做了些修改。目前支持UTW(在单篇文章页显示)、Widgets、傻逼妹等插件。下载它。我把最新评论从侧边栏删除了,有需要请用Widgets、傻逼妹等插件调用之(推荐傻逼妹,它太强了)。另外,看了王三表的访谈,挺好,挺逗,阅读全文可观看。
Update:当前版本:1.4。在1.3的基础上,去除了UTW的支持,改用 WP2.3 默认的TAG系统。同样支持 widgets,傻逼妹。另外,修改了一下导航条的样式,1.3的太丑了。
Update:更新了一下,当前版本1.3,给作者评论加了背景,评论也加了ajax无刷新功能。
注意:新加了404页模板、page模板和archives模板。 Update:又小小的更新了一下,除上面的以外,blogname 下面增加了导航条,修改了翻页代码,支持WP-PageNavi插件。
下载:
最新版本:keso theme 1.4 beta(该有的都有)
1.3版:keso theme 1.3 beta
无导航条版:keso theme 1.2 beta(无导航条,没有修改翻页代码,utw、sbm支持,有ajax无刷新评论)
最初版本:keso theme 1.1 beta(无导航条,没有修改翻页代码,utw、sbm支持,无ajax无刷新评论)
有什么问题请留言给我。
暂时加个演示:http://dupola.host.meyu.net
我的WordPress使用心得
都是比较个人化的观点,并不一定适用于阁下。如果你有什么好玩儿的,还望留言共享。
- 插件要少,要精,要实用。不要图花哨。什么天气啦,股票啦,如果不是专业搞这个,都不要。尤其主机性能不好的或者直接放在国外的,更不要用,太拉速度了。这里有我用着和用过的一些插件,有兴趣的朋友可以看一下。
- 主题简洁。什么订阅啊之类,都放到次页面。首页就放个主要的,其他的给个连接就好。说到feed订阅我说一下我的,我在header里把3个feed url都改成自己的FB。有些插件可以将三个feed地址全部改成FB的,我没用,只在header里改了一下。
- blog名称要独特,并且不要在哪儿都用这个名称。譬如我的”肚破惊天”。刚开始确实挺独特,结果我到哪儿开一博,都要用这名字。结果Google就烦了,搜索”肚破惊天”第一页居然没有pute.net.ru(更新一下,域名现在换成dupola.com,搜索结果dupola.com已经排在第一位了)
- 永久连接。我推荐使用post name格式,前面自定义。我举个例子,前两天我买了Surpass Hosting的1美元型主机。我看到统计里有几个来自Google和百度的,关键词是SurpassHosting,于是我再去搜索,结果发现排在第一的不是我,而是另两位看了我文章在他们blog做介绍的。我的介绍文章的连接是post/67,其他两位的是post(or no)/xxxx/surpassHosting.htm。
- 不要随便更改永久连接格式。在4后,我曾想过更改永久连接格式,但我想想又没改。我的连接都是post/sxxx,并且已经有许多文章被人转去或者我转出去了,如果别人再转回来的时候,发现都是404错误页,很令人生厌的。而且,之前我是用PJBLOG的,它的文章连接格式是article.asp?id=xx,现在我在统计中,看到仍然有不少用户的登录入口是这个格式。
- title即网页标题。默认的blog标题是Blog name,我在title里的Blog name后面加了Blog描述,所以我的title就是Blog name+Blog描述。单篇文章的标题是post name+blog name+blog描述,page同理。我不懂SEO,不过我觉得这样会好些。
- Blog主人的评论要有特定的CSS控制,以表明身份。这样做,是为了保证在你的文章争议性较强回复较多观点较杂的时候,让读者很容易的明白blog主人的态度。即使虽然你根本没有态度。并且,你不可能定期整理自己的评论,告知大家,哪些”admin”是你哪些不是吧?
- Tags,archives,Related Posts应该合理而适时的显示于特定位置。比如我用的k2主题,它的archives即存档页面,很好的整合了UTW和ELA两个插件。这令我非常满意,这样极度方便用户查找相关文章。当然,tags本身也具有这个良好功能,有朋友还加了tag云,我觉得也挺好,不过我没有用。随机文章我没有用,我blog的访客没有闲心不停地刷新页面以获取随机文章的兴趣我猜。不过他们或许会在阅读某篇文章的时候,对右边或者下边的相关文章感兴趣,这个是肯定的。另外,我看到有些战友的分类特别多,而有些分类却只有1篇文章,太浪费片面了。比如Yskin的。
- 合理控制页面显示模块。我用的k2主题自带的傻逼妹插件,它能很好的控制各个模块在某个post某个页面的显示与否,我很喜欢。比如blogroll,我不喜欢它在次页面,我也不能把它放在次页面。于是我就让这个模板只在首页显示,每个页面都调用相同的模板,太浪费了。其他模板类似。
- 如果你想让更多的人知道你的blog,那就多Ping或者tracback吧。这里有一个Ping列表。在写文章的时候,如果引用到别人文章,记得给个连接,这样就可以trackback它了,我很喜欢这个功能。它既不会被当作垃圾处理,还会提供信息给原作者还能增加你的访问量。
- 当然还有很多,比如经常更新啦要多多发表原创啦之类老生常谈的问题。
前段时间,Gmail全球开放注册,世界网民皆大欢喜。今天我在帮别人购买DreamHost主机的时候,去注册一个Gmail,不料发生以下情况。我的猜测是,Google通过IP和Cookies控制用户注册数量,而那个邀请函无效,可能是随机邀请函,也可能是浏览器缓存中的账号发出的。不过,即使你没有Gmail也还是可以使用Google的其他服务的。那在网吧呢?重启电脑后,还原精灵自动清除了使用痕迹。那Cookies不是无效了?那记录IP?在Google Adsense里,清除Cookies点击广告是作弊行为,那在Gmail注册中呢?嘿嘿,专业人士请讲先。下面看看我在注册时遇见的”此邀请函无效”现象:
另外,之前提到的登录Google账户(包括Gmail)转到Google.CN的现象仿佛解决了。为此我还专门写信给Google小组,还照他们的要求装了FireFox插件等等……
提示已创建用户。

在转去Gmail时显示如下:

先下载 PuTTY,我下的是PuTTY File 0.60cn 中文版。
中文版:http://wrc.gro.clinux.org/putty/
English:http://www.chiark.greenend.org.uk/~sgtatham/putty/
首先你得确定你的FTP账号开户了SSH功能(Users-Manage Users-edit-User Account Type:选第三个有SSH的。接下来登录你并管理了,下面是我的登录演示:
下载完 putty 中文版的 zip 包以后,解压到随便哪个目录,然后双击 putty.exe
一、打开 putty,输入主机地址,每个人的主机地址都不一样,可以用你的域名代替。例如dupola.com

三、输入用户名和密码(注意,输入密码的时候,putty 界面上并不显示密码。输完以后按 enter 确认)

四、常用命令
首先我们得知道什么叫shell.
操作系统与外部最主要的接口就叫做shell,或许这样说过于术语化,例如cmd命令行,这是windows操作系统下的一个shell。这里说的dreamhost的shell是指dreamhost提供给客户一个命令行,方便客户更好的使用他们的虚拟主机服务。
DreamHost中shell使用指南本shell指令及操作均基于Linuxord2.4.29,即DreamHost现在采用的系统。本人会比较死板,只针对想要使用shell又苦于不知如何下手的新手,如果你也是DreamHost的用户,那本文或许对你有所帮助。
目录:
1.BasicInstructions/基本
2.wget/下载工具
3.Crontab/定时任务
4.tar/tar.gz/压缩文件
5.vi/编辑器
cd[目录名]转换路径
cd.. 返回上级目录
ls显示当前目录下所有文件
rm[-r]-f[][文件名]删除文件,加[-r]可以删除文件下所有子文件,如rm -rf [abc]删除abc文件夹及文件夹下的所有文件
tar -xzf [解压下载的压缩包]
unzip[文件名]解压文件
cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中
wget(没用过,据说是最实用的一个,否则那200G估计每天不掉线才有可能用完)
1.BasicInstructions基本操作命令
通常来说,使用”$[Instructions]–help”可以获得以下各个命令[instructions]的帮助,包含其参
数列表的定义。
-ls列出当前文件夹下所有内容
$ls-o列出当前文件夹中所有内容,含详细信息,但不列出group
$ls-l同上,含group信息
$ls-a列出当前文件夹中所有内容,包含以”.”开头的文件
$ls-t按更改时间排序
$ls-v按版本
-cd [dir] 进入文件夹
cd.. 退出当前文件夹,返回上级目录
-pwd 显示当前路径
-mkdir [dir] 新建文件夹
-chmod更改文件/文件夹权限
$chmod [Mode] [dir],其中Mode形如”755″或”777″等。
$chmod [Mode] [file]
$chmod -R [Mode] [dir],递归形式,即将目标文件夹内所有文件均改变权限
Mode还有另一种表达方式,”755″即为”-rwxr-xr-x”,不列举了。
-rm [file]删除文件/文件夹
$rm-f [file]强行删除,忽略不存在的文件,无提示
$rm-r [file]递归删除所有内容
$rm -rf 删除文件夹
-cp拷贝
$cp [options] [source] [destination]
其中[options]可以为-f(强行拷贝)或-r(递归拷贝)
-mv重命名或移动
$mv[options][source][destination]
[options]常用:-f(强行移动/重命名),-i(移动/重命名前尝试),-u(更新)
例如
$mvwwwroot/cgi-bin.将/cgi-bin目录移动到当前目录下
$mvcronfile.txtmyfile.txt将cronfile.txt重命名为myfile.txt
cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中
2.wget下载工具
wget是一种非交互式的网络文件下载工具,在linux下可以使用该工具快速地从网络上下载
所需要的文件而不需要经由本
wget[参数列表]URL
最简单的用法:
$wget http://dupola.com/file.tar
wget的常用参数:-t[nuberoftimes]:尝试次数,当wget无法与服务器建立连接时,尝试连接多少次。比
如”-t120″表示尝试120次。当这一项为”0″的时候,指定尝试无穷多次直到连接成功为止,
这个设置非常有用,当对方服务器突然关机或者网络突然中断的时候,可以在恢复正常后继
续下载没
有传完的文件;-c:断点续传,这也是个非常有用的设置,特别当下载比较大的文件的时候,如果中途意外中断,那么连接恢复的时候会从上
次没传完的地方接着传,而不是又从头开始,使用这一项需要远程服务器也支持断点续传,一般UNIX/linux的Web/FTP服务器都支
持断点续传;-T[numberofseconds]:超时时间,指定多长时间远程服务器没有响应就中断连接,开始
下一次尝试。比如”-T120″表示如果120秒以后远程服务器没有发过来数据,就重新尝试连
接。如果网络速度比较快,这个时间可以设置的短些,相反,可以设置的长一些,一般最多
不超过900,通常也不少于60,一般120左右比较合适;-w[numberofseconds]:在两次尝试之间等待多少秒,比如”-w100″表示两次尝试之间等
待100秒;-nd:不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;-x:与”-nd”设置刚好相反,创建完整的目录结构,
例如”wget-ndhttp://www.gnu.org/”,
实际的目录结构一级一级建下去,直到所有的文件都传完为止;-nH:不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到
当前目录
下;-r:递归下载,在本录结构;-l[depth]:下载远程服务器目录结构的深度,例如”-l5″下载目录深度小于或者等于5以
内的目录结构或者文件;
-m:做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设定
其他合适的选项以便于站点镜像;-np:只下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们假
设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载这个
人的个人主页,如果不设置这个选项,甚至–有可能把整个站点给抓下来,这显然是我们通
常不希望的;–http-user=username–http-passwd=password:如果Web服务器需要指定用户名和口令,用这两项来设定;-O将数据写入文件中。
3.Crontab定时执行任务
在DreamHost系统下,通过Shell可以建立自己的crontab.具体使用如下:
使用支持shell登录的终端(如fterm或putty),地址栏输入username@qiran.org:22即可以SSH
方式登录至服务器.
常用的crontab命令:
crontab-l显示所有现存cronjob.
crontab-r删除当前cronjobs.
crontab-e编辑当前”crontabfile”.DH推荐使用nano
注意你的crontab包含所有的cronjobs,每个cron一行,断行结尾.一个正常的cron如下所
示:
452***/home/user/script.pl
第一个数字是每小时的第几分钟,
第二个数字是每天的第几小时,
第三个数字是每月的第几天,
第四个数字是每年的第几月,
第五个数字是每周的第几天.
使用方式例如:
32 * * * * : 表示每小时的第32分钟.
12,42 * * * * : 表示每小时的第12及第42分钟两次
*/15 */2 * * *: 表示0:00, 0:15, 0:30, 0:45, 2:00, 2:15, 2:30, …
43 18 * * 7: 表示每个周日的6:43pm运行命令行.
在DreamHost下使用nano编辑完文件后,使用ctrl+o保存,ctrl+x退出编辑。
4.tar命令
tar命令的使用方法如下:
tar[参数列表][文件名]
参数列表:
-c生成新的备份,并同时覆盖旧的备份文件
-x从备份文件中解压缩
-t列出备份文件内的文件目录
-v显示所有被操作文件列表
-f在指定位置生成备份
-u将不存在于备份中的文件,或将已经被更改的文件加入该备份中。
举例说明:
tar cvf filename.tar /*制作备份*/
tar cvf tarfile.tar ./filename /*将filename的文件备份到tarfile.tar里面*/
tar tvf filename.tar /*列出tar文档的内容*/
tar xvf filename.tar /*从tar文档中导出文件*/
tar zxpvf filename.tar.gz /*从tar.gz文档中导出文件*/
tar zxvf filename.tar.gz /*同上*/
tar xvf tarfile.tar ./filename /*导出tar文件中的单个文件*/
tar -xzf filename.tar.gz 解压
5.vi编辑器
Linux下很易用的一种编辑器,只需要稍微知道几个指令即可应用。
打开vi:
$vi [filename]:打开或新建文件,并将光标置于第一行首
$vi +n [filename] :打开文件,并将光标置于第n行首
$vi + [filename] :打开文件,并将光标置于最后一行首
$vi +/pattern [filename]:打开文件,并将光标置于第一个与pattern匹配的串处
$vi -r [filename] :在上次正用vi编辑时发生系统崩溃,恢复filename
$vi [filename]….[filename] :打开多个文件,依次编辑
如果filename不存在,则自动生成一个名字filename的新文件。
vi共有两种状态:命令状态/编辑状态
编辑状态下:
第次按下insert键为”insert”模式,再按一下为”replace”模式,使用ESC返回命令状态;
在此状态下键盘的PgUp/PgDn/Insert/Delete/Home/End/方向键,均处于正常功能状态。
命令状态下:
输入的字符串作为命令处理,使用”insert”键切换到编辑状态;
以下是命令状态下的命令清单:
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带”\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。
到现在为止,你已经成功登录SSH了!你可以输入help来查看帮助,输入ls查看你的目录情况,etc.
退出SSH,输入:
exit
会出现提示:
logout
Connection to 208.113.155.137 closed.
----------------------------
MySQL相关
----------------------------
update:登录SSH后才可操作MySQL!
登录MySQL,输入:
mysql -u username -p -h 208.113.129.128
username替代为你的帐号;出现下面这个提示后输入密码:
Enter password:
接着,登录mysql数据库成功,出现下面提示:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3602 to server version: 5.0.18-standard-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
查看你的数据库:
show databases;
导入数据库内容。首先要选择你要导入内容的数据库:
use database;
将database更改为你导入数据库内容的数据库名称。在导入数据库前,确认你已经把导出的数据库文件上传到FTP目录下。例如,我在WP利用插
件导出的备份,解压有一个后缀为”.sql”的文件,把这个上传到你的FTP目录下即可;不用放进目录下面,直接上传就可以了。继续原来的话
题,输入下面命令导入数据库:
source wp.sql
其中wp.sql是你的数据库备份文件的名称。
退出mysql:
\q
查看mysql的帮助(用途不大):
\h







