您可以分享到:
抽屉 QQ空间
网易微博 新浪微博
腾讯微博 人人网
Follow5
在《打造 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/


已有101条评论
bolo
发表于2009年08月1日08:21
不知道能不能弄出一个g.cn的短网址,哈哈
Showfom
回复:
August 1st, 2009 at 08:24
@bolo, 想得美呢
HK
回复:
July 26th, 2010 at 17:11
@bolo, 是啊 G.cn很牛啊
久酷
发表于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 有语言包吗?可不可以吧他翻译成中文的,好方便中文用户呢?
Showfom
回复:
March 12th, 2010 at 11:45
@言午一郎, 这个,用不着翻译吧
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
Showfom
回复:
March 12th, 2010 at 11:45
@lietlie, 明显数据库没写正确
jeff
发表于2010年03月23日10:33
没想到 这里还有从我的博客trackback来的一个地址 ; showfom 请教一下 我也想搭建一个短网址,但是我只是希望短网址中出现特定的几个字符 比如说只是出现 a f c g 这样的 应该在什么地方改呢?
怪獸
发表于2010年03月26日20:28
求前台的代码,特指 go.php , javascript 无法实现生成短域名,可以的话,请告知代码。请发到我的邮箱。万分感谢。
风行
发表于2010年05月5日16:59
harvey
发表于2010年06月13日10:24
showform,
看到有人转跳后用inframe中显示广告,我想用iframe隐藏原网址http://www.codingforums.com/showthread.php?t=56475
我不懂代码啊,请教一下,转跳后怎样才能在inframe中显示啊;
谢谢
harvey
回复:
June 13th, 2010 at 18:52
@harvey,
我k,刚才想了想,根本就不用inframe,其实rewrite是最好的。
博主能否帮我写一下Nginx下的规则?
谢谢

Showfom
回复:
June 13th, 2010 at 20:13
@harvey, 我也不会哦
harvey
发表于2010年06月13日20:37
那个inframe的方法能解决不?
harvey
发表于2010年06月13日20:40
我刚找到转跳的那个页面



yourls-go.php
修改了一顿也不行,因为它是301转跳,inframe发挥不了作用,
harvey
发表于2010年06月13日20:42
前几天,从你这里往外点连接,看到你的一个朋友,加了短网址转跳后加了广告;

现在死活找不到,我
Showfom
回复:
June 13th, 2010 at 21:41
@harvey, 见 imbolo.com
harvey
发表于2010年06月13日22:14
谢谢,解决了;
pretty link刚好有这么一个选项!
cloak link
正在研究怎么通过php直接调用
max
发表于2010年07月26日21:03
有个哥们遇到这样的问题,好了,把链接发给他了
snowxh
发表于2010年07月30日22:21
请问下如果建在wordpress的子域名下面数据库应该怎么写呢 写和WordPress一样的么
freeya2008
发表于2010年08月7日14:09
我把程序安装在/u目录下了, 可是为什么在后台生成短网址后,却打不开.
black lebron james shoes
发表于2010年08月24日13:54
不知道是不适合我
不知不觉
发表于2010年10月8日14:52
我想问下,那个短网址域名
gxf.in 就这个是怎么来的啊?要重新去注册这个域名吗??还是怎么回事?
Kimcool
发表于2010年10月15日15:27
不行啊。。我用了1.4的版本结果首页没index啊。。怎么回事呢?3000.Im
Showfom
回复:
October 16th, 2010 at 06:57
@Kimcool, 当然没有,要自己改的
KANG
发表于2010年10月27日12:18
你好,我想问一下用Yourls1.4建的怎么不能用API调用啊,试了下呢的也不能?http://gxf.in/yourls-api.php?action=shorturl&format=simple&username=&password=&url=网址
Xylon
发表于2010年11月26日05:34
看起来蛮复杂的样子。。。有空慢慢试试看~~
漠伦
发表于2011年01月1日19:52
请教一下Showfom小帅哥,在安装架构好YOURLS后且设置为公用后,如何设置成登陆该域名就是一个缩短网址的页面呢?就像gxf.in一样的首页应该如何设置,请求指教。
Showfom
回复:
January 3rd, 2011 at 08:52
@漠伦, 参考simple-index的那个txt文件
时代
发表于2011年01月16日23:39
请问这位大侠,我架设了怎么总是出错呢?我弄了好长时间,也没找到原因!希望你能帮帮我!谢谢了!
网上兼职
发表于2011年02月4日18:18
博主很牛呀!
Simon
发表于2011年02月16日01:36
兽兽小帅锅,你那个zi.mu上面的已缩短网址数量和已转发次数的调用是如何实现的,分享一下喽~
徐翔博客
发表于2011年03月18日00:03
我的站正在用,感觉不错。
死大葱
发表于2011年04月4日11:54
很不错,路哥把模板提供了更好,嘎嘎
dream
发表于2011年11月13日20:46
我在本地测试 生成转址后出现:
404 Not Found
The requested URL /1 was not found on this server.
hzq.im
发表于2011年12月5日17:41
关于yourls大小写敏感的问题,我怀疑是否php空间没有安装BCMath 扩展,也就是说:
1、没有安装BCMath 扩展,无论是36 还是62都是大小写敏感,目前36下用大写字母作自定义网址都不成功
2、安装BCMath 扩展,36就是不敏感,62就敏感
由于我不懂php语言,不知道如何安装BCMath 扩展,所以无从验证
Trackbacks