在《打造 WordPress 的简易短网址 》一文中,介绍了利用 WordPress 的 永久链接 打造简易山寨的短网址系统,但是这种方法有种缺憾,比如网站要搬家了,.htaccess文件被修改了,或者自己要查看短网址被访问的次数,这时候都是一件很麻烦的事情,所以,这里我推荐使用由国外著名 WordPress 插件大师级人物 Ozh Richard 和 Lester Chan 一起写的 Yourls 。
一、介绍作者
使用 WordPress 有点年份的老鸟一定对 Ozh (法国淫) 和 Lester Chan (新加坡淫) 两位大师级插件作者不会陌生,Ozh’s 插件系列,以及 Lester Chan 的 WP- 系列插件,或许你不知道他们的名字,但是 Ozh’s Better Feed 和 WP-Postviews、WP-Postnavi 等等大名鼎鼎的插件你一定不会陌生,没错,都是这两位作者的杰作。
Ozh 和 Lester Chan 的插件流行度都很大,这次两人联手制作的 Yourls ,引起无数粉丝狂欢,因为这款 php程序 本来是 Ozh 御用的,后来在广大爱好者的要求下,和 Lester Chan 一起重写,然后发布,嘎嘎。
八卦一下:Ozh 的御用私人短网址地址是 ozh.in ,Lester Chan 的是 lc.sg 。
二、Yourls 下载安装使用介绍
下载:
Yourls 的最新版本是 1.1 ,可以前往 http://code.google.com/p/yourls/downloads/list 进行下载,但是 1.1 有个致命的bug,不知道是 Ozh 浪漫过头了,还是 Lester Chan 也没看到,用非记事本打开 yourls-go.php,找到第23行,然后,
原句是:var_dump($url); die(); 直接注释修改修给为 //var_dump($url); die();
不修改的话生成短网址的时候会出错,感谢 Lorz 发现。
安装:
Yourls 的安装方法也比较简单,首先打开 includes\config-sample.php ,
找到
/** MySQL database username */
define('YOURLS_DB_USER', 'dbuser'); // MySQL 数据库用户名/** MySQL database password */
define('YOURLS_DB_PASS', 'dbpassword'); // MySQL 数据库密码/** The name of the database for YOURLS */
define('YOURLS_DB_NAME', 'shorturl'); // MySQL 数据库名称/** MySQL hostname */
define('YOURLS_DB_HOST', 'localhost'); // MySQL 数据库所在主机,99%情况不用修改,Godaddy的空间需要修改/** MySQL URL table name. Don't change this if in doubt. */
define('YOURLS_DB_TABLE_URL', 'url'); // 创建的 Yourls 的表的名字,同一个数据库放多个 Yourls 程序时需要修改/** MySQL Next ID table name. Don't change this if in doubt. */
define('YOURLS_DB_TABLE_NEXTDEC', 'next_id'); // 同上
修改成相应的数据库信息
找到
/*
** Site options
*//** Short domain URL, no trailing slash */
define('YOURLS_SITE', 'http://site.com'); //站点域名/** Timezone GMT offset */
define('YOURLS_HOURS_OFFSET', 0); //时区修改,基本没必要/** Private means protected with login/pass as defined below. Set to false for public usage. */
define('YOURLS_PRIVATE', true); //私人用还是公开用,公开的话写false,一般都私人用/** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. Hint: copy from http://yourls.org/cookiekey.php **/
define('YOURLS_COOKIEKEY', 'qQ4KhL_pu|s@Zm7n#%:b^{A[vhm'); //访问 http://yourls.org/cookiekey.php 取得一个唯一的 Key 并且修改填入/** Username(s) and password(s) allowed to access the site */
$yourls_user_passwords = array(
'username' => 'password',
'username2' => 'password2' // You can have one or more 'login'=>'password' lines
); //这里是管理员的用户名和密码,默认有两组,可以删除一组或者增加N多组
根据自己的需要进行修改
然后把 config-sample.php 重命名为 config.php ,确保你的空间支持 PHP + MySQL 以及基本的几个组件(Mod-Rewrite功能,Curl 等,一般的空间都支持)
最后执行 http://你的地址/admin/install.php 进行安装即可
使用 Apache 主机的朋友,请确定你的空间支持 Mod-Rewrite ,就是可以用 .htaccess 文件进行伪静态,程序根目录已经给你写好 .htaccess 所以不用自己再写;使用 Nginx 的童鞋,伪静态的规则是:
location /
{
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/([0-9A-Za-z]+)/?$ /yourls-go.php?id=$1 last;
}
rewrite ^/([0-9A-Za-z]+)\+/?$ /yourls-infos.php?id=$1 last;
rewrite ^/([0-9A-Za-z]+)\+all/?$ /yourls-infos.php?id=$1&all=1 last;
}
已经测试无误,因为本人的 Yourls 就是放在 Nginx 主机上的。
使用:
Yourls 提供两种 URL 编码形式,一种是只有小写的 Base 36 encoding 0123456789abcdefghijklmnopqrstuvwxyz,还有一种是有大小写的 Base 62 encoding 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,一般来说,使用默认的 Base 36 即可,因为要使用 Base 62 需要空间支持 php 的 BCMath 扩展,而且没什么必要,个人用 Base 32 足矣,官方宣称可以创建 4,738,381,338,321,617,846 个短网址,天哪,这得用到猴年马月,所以没什么特殊情况就不用修改 config.php ,用默认的编码即可。
后台地址是 http://你的地址/admin/ 当然可以修改 admin 文件夹的名字以防万一,管理员的用户名和密码都在 includes\config.php 里自己设置,不推荐使用常用的密码,毕竟是明文形式储存,所以想一个复杂点的没用过的密码最好不过。
登陆后台,就可以看到清爽的后台界面,在后台增加短网址之类的就不用我说了,UI 界面非常友好,如图:
为自己的博客文章或页面生成短网址有两种方式,一种就是截图所示的后台自己生成,一种是通过 API 或 WordPress 插件。
默认的 API 地址就是 http://你的地址/yourls-api.php 官方的 API 文档在这里:http://yourls.org/#API 虽然不够详细,但是也够用了。要是觉得一头雾水的话,Lorz 童鞋为我们做好了 JavaScript 脚本:
http://lorz.me/short-url-yourls/
怎么样,还是很拉风的吧。
Ozh 提供了两个 Template Tags
<?php if (function_exists('wp_ozh_yourls_url')) wp_ozh_yourls_url(); ?> 用来直接输出生成的短网址地址,可以用在主题文件的 single.php 、 page.php 等,这个函数输出的内容如下:
<a href=”http://gxf.in/1” rel="nofollow alternate shorter" title="short URL">http://gxf.in/1</a>
<?php if (function_exists('wp_ozh_yourls_head_linkrel')) wp_ozh_yourls_head_linkrel(); ?> 是一个放在头部的东东,对 Google 等搜索引擎肯定有好处,对百度这种那就算了。这个函数输出的内容如下:
<link rel="alternate short shorter shorturl" href=”http://gxf.in/1” />
帅吧,还犹豫什么,拿起你手中的短域名开始你的短网址之旅吧,Showfom 小帅锅已经把文章页面里的短网址全部替换成自己架设的 Yourls ,而且域名就是模仿 Ozh 的,注册了个酷酷的 gxf.in (拼音缩写),私人短网址的时代到来了!
三、个人意见
个人觉得Yourls最那啥的一点就是,默认是按照顺序来排列短网址,而不是通常的随机字母数字结合,希望作者能在下一个版本改进。
PS: Yourls 已经改进很多,比如在短网址最后加 + 符号即可查看统计次数,前台也有简单的模板样式,详见: http://gxf.in/
相关信息
本文短网址:http://aa.cx/0bv , 如果你觉得本文很可爱,请使用 Twitter 来分享本文:Tweet This
- 收藏+分享: Delicious / Live Favorites / Google书签 / 百度搜藏 / QQ书签 / 饭否 / 豆瓣 / Twitter


已有61条评论
bolo
发表于2009年08月1日08:21
不知道能不能弄出一个g.cn的短网址,哈哈
[回复]
Showfom
回复:
August 1st, 2009 at 08:24
@bolo, 想得美呢
[回复]
久酷
发表于2009年08月1日08:22
I am the first one
[回复]
Showfom
回复:
August 1st, 2009 at 08:24
@久酷,
哎……比我还自恋 嘎嘎
[回复]
胡戈戈
发表于2009年08月1日08:37
确实很拉风
[回复]
Graygift
发表于2009年08月1日08:53
对访问量如此低的我好想没什么用
[回复]
Showfom
回复:
August 2nd, 2009 at 09:57
@Graygift, 纯粹是好玩而已 哈哈
[回复]
老N
发表于2009年08月1日10:31
不错,不错,挺好玩的~可惜我没啥技术实力,只好用bit.ly了~
[回复]
Showfom
回复:
August 1st, 2009 at 10:34
@老N, 老N你也来用我的吧……嘎嘎 QQ上聊
[回复]
西风
发表于2009年08月1日10:52
[回复]
Showfom
回复:
August 2nd, 2009 at 09:57
@西风, 妈的 笑起来都那么淫荡
[回复]
ZH CEXO
发表于2009年08月1日10:52
好玩不想搭
[回复]
Showfom
回复:
August 1st, 2009 at 10:57
@ZH CEXO, 嗯对 你也用我的吧……
[回复]
disinfeqt
发表于2009年08月1日10:57
标题有问题,使用 Yourls 强化你的短网址系统,Yourls本来就是短网址系统...
话说,第一次知道 Yourls 是 Andor 的 http://2-7.in
[回复]
Showfom
回复:
August 1st, 2009 at 11:12
@disinfeqt, 是强化啊 我本来用自制的简易的短网址,是强化 WordPress 的短网址 嘎嘎
[回复]
卡提拉
发表于2009年08月1日11:40
看起来好复杂哦
[回复]
Showfom
回复:
August 2nd, 2009 at 09:57
@卡提拉, 这还复杂……囧
[回复]
kramon
发表于2009年08月1日17:06
昏,又来晚了...
[回复]
Showfom
回复:
August 2nd, 2009 at 09:57
@kramon, 下次QQ上说什么都给你发个消息……
[回复]
天天天黑
发表于2009年08月1日18:30
学习了 现在还不需要
[回复]
Showfom
回复:
August 2nd, 2009 at 09:58
@天天天黑, 欢迎新朋友。
[回复]
天天天黑
回复:
August 2nd, 2009 at 12:17
@Showfom,
现在是老朋友了 
[回复]
zwwooooo
发表于2009年08月1日19:56
还没打算折腾这个,看看先
[回复]
Showfom
回复:
August 2nd, 2009 at 09:58
@zwwooooo, 现在国外都流行这个哦~~嘎嘎
[回复]
Dianso
发表于2009年08月1日20:35
去试试咋样
[回复]
Showfom
回复:
August 2nd, 2009 at 09:58
@Dianso,
你的域名也很短的说。
[回复]
章鱼
发表于2009年08月1日22:26
搭过 很无聊
[回复]
Showfom
回复:
August 1st, 2009 at 22:37
@章鱼, 你这种mjj的肯定觉得无聊。
[回复]
皇冠平台
发表于2009年08月2日08:32
暂时没有用到
[回复]
LAONB
发表于2009年08月2日10:05
原来我这次真的忘记留言了

我要想一个有创意的短网址,那就叫肖申克高吧。
[回复]
Showfom
回复:
August 2nd, 2009 at 10:21
@LAONB, 肖申克高拍黄片的?
[回复]
LAONB
回复:
August 2nd, 2009 at 17:55
@Showfom, 就是那个死胖子,留个小胡子,要带曾哥拍GAY片。
[回复]
小奥
发表于2009年08月2日13:47
[回复]
365hope
发表于2009年08月2日17:51
短网址系统现在有很多啦,现在国内这边还比不上国外流行,以后肯定会是个趋势的。。。
另,不知道.in是哪个国家的?当然.sg应该是新加坡的吧。
不过这些国家的后缀域名估计价格都不便宜啊
[回复]
Showfom
回复:
August 2nd, 2009 at 19:55
@365hope, .in 是印度阿三的 哈哈 我还是最喜欢我的 .im , Isle of Man 马恩群岛 男人之岛
[回复]
shun
发表于2009年08月2日19:59
微博客在天朝都水产类之后,短网址作用打折扣了
[回复]
Showfom
回复:
August 2nd, 2009 at 20:06
@shun, 民间流传……
[回复]
huaimao
发表于2009年08月4日10:30
帮我弄个1.cn 咋样?
[回复]
Google
发表于2009年08月4日20:30
Have you got English edition please tell me Thanks
[回复]
Showfom
回复:
August 4th, 2009 at 23:24
@Google, It is English.
[回复]
Lorz
发表于2009年08月5日08:30
顺便,
,你的头部图片在 1920*1080 分辨率下,明显不够用了
[回复]
Showfom
回复:
August 5th, 2009 at 10:26
@Lorz, 这个我知道,上回用28英寸的屏幕的时候我发现了 囧
[回复]
贝壳
发表于2009年08月5日09:32
不错的说···
[回复]
小熊
发表于2009年08月6日11:12
我的文章都不可爱 所以没必要了
[回复]
中悦
发表于2009年08月7日20:45
并不是很感兴趣,日后再看情况吧……
[回复]
zrqx008
发表于2009年09月9日22:22
我那个能不能用?
[回复]
feixiao
发表于2009年11月16日21:38
好玩意儿,不知几个同类的产品哪个最好。
[回复]
YuSky
发表于2009年11月22日21:24
这玩意儿~ ·不知道哪个好用~ · ·你也不推荐几个~
[回复]
sogo論壇
发表于2009年11月24日09:48
站長請問一下怎麼連絡你
可不可以付費麻煩你幫我這設這短網址的功能呀?
可以的話就麻煩你寄信給我連絡一下囉~
[回复]
Showfom
回复:
December 7th, 2009 at 12:55
@sogo論壇, 抱歉我现在才看到 没问题 直接发邮件给我就行 showfom [at] gmail.com
[回复]
诗酒如画
发表于2009年12月6日00:58
[回复]
Showfom
回复:
December 7th, 2009 at 12:54
@诗酒如画, 可以放在子目录~
[回复]
言午一郎
发表于2010年01月27日23:45
求助:
我搭了一个怎么不行,安装过后显示:
* Apache module mod_rewrite not found. Check this with your server admin.
* File .htaccess successfully created/updated.
* Table 'yourls_url' created.
* Table 'yourls_options' created.
* Table 'yourls_log' created.
* YOURLS tables successfully created.
然后再点击登录页面时显示:
* YOURLS already installed.
* Apache module mod_rewrite not found. Check this with your server admin.
请问是出了什么问题?
[回复]
言午一郎
回复:
January 28th, 2010 at 00:01
@言午一郎, 我的空间是默认支持mod_rewrite的!
[回复]
Showfom
回复:
February 11th, 2010 at 00:38
@言午一郎, 清空你浏览器的缓存!
[回复]
言午一郎
发表于2010年02月11日01:00
现在行了,多谢了!
另问下:yourls 有语言包吗?可不可以吧他翻译成中文的,好方便中文用户呢?
[回复]
lietlie
发表于2010年03月11日17:37
请问,为什么我每次设置都提示“Access denied for user 'aaa'@'localhost' to database 'shorturl' in /home/xxx/public_html/includes/class-mysql.php on line 328
空间后台是cPanel
[回复]
Trackbacks