使用 Yourls 强化你的短网址系统

在《打造 WordPress 的简易短网址 》一文中,介绍了利用 WordPress 永久链接 打造简易山寨的短网址系统,但是这种方法有种缺憾,比如网站要搬家了,.htaccess文件被修改了,或者自己要查看短网址被访问的次数,这时候都是一件很麻烦的事情,所以,这里我推荐使用由国外著名 WordPress 插件大师级人物 Ozh RichardLester Chan 一起写的 Yourls

一、介绍作者

使用 WordPress 有点年份的老鸟一定对 Ozh (法国淫) 和 Lester Chan (新加坡淫) 两位大师级插件作者不会陌生,Ozh’s 插件系列,以及 Lester Chan 的 WP- 系列插件,或许你不知道他们的名字,但是 Ozh’s Better Feed WP-PostviewsWP-Postnavi 等等大名鼎鼎的插件你一定不会陌生,没错,都是这两位作者的杰作。

Ozh Lester Chan 的插件流行度都很大,这次两人联手制作的 Yourls ,引起无数粉丝狂欢,因为这款 php程序 本来是 Ozh 御用的,后来在广大爱好者的要求下,和 Lester Chan 一起重写,然后发布,嘎嘎。

八卦一下:Ozh 的御用私人短网址地址是 ozh.inLester 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 需要空间支持 phpBCMath 扩展,而且没什么必要,个人用 Base 32 足矣,官方宣称可以创建 4,738,381,338,321,617,846 个短网址,天哪,这得用到猴年马月,所以没什么特殊情况就不用修改 config.php ,用默认的编码即可。

后台地址是 http://你的地址/admin/ 当然可以修改 admin 文件夹的名字以防万一,管理员的用户名和密码都在 includes\config.php 里自己设置,不推荐使用常用的密码,毕竟是明文形式储存,所以想一个复杂点的没用过的密码最好不过。

登陆后台,就可以看到清爽的后台界面,在后台增加短网址之类的就不用我说了,UI 界面非常友好,如图:

Yourls

为自己的博客文章或页面生成短网址有两种方式,一种就是截图所示的后台自己生成,一种是通过 API 或 WordPress 插件。

默认的 API 地址就是 http://你的地址/yourls-api.php 官方的 API 文档在这里:http://yourls.org/#API 虽然不够详细,但是也够用了。要是觉得一头雾水的话,Lorz 童鞋为我们做好了 JavaScript 脚本:

http://lorz.me/short-url-yourls/

怎么样,还是很拉风的吧。

在阅读器中无效的,请移步到这里:http://zou.lu/yourls/
更加方便的一种方法是使用 Ozh 写的 WordPress 插件 - YOURLS: WordPress to Twitter
下载,上传,后台激活,然后按照我这样的设置即可(国外空间的童鞋还可以选择发送到 Twitter ,国内空间的童鞋就没福气了,原因不详,我文盲,不知道为啥 Twitter 不能直接上,连 API 都封。)
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/


.De域名注册

相关信息

已有83条评论

  1. bolo CHINA Internet Explorer Windows 发表于2009年08月1日08:21

    不知道能不能弄出一个g.cn的短网址,哈哈

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @bolo, 想得美呢

    [回复]

    HK CHINA Internet Explorer Windows 回复:

    @bolo, 是啊 G.cn很牛啊 :mrgreen:

    [回复]

  2. 久酷 CHINA Mozilla Firefox Windows 发表于2009年08月1日08:22

    I am the first one :mrgreen:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @久酷, :roll: 哎……比我还自恋 嘎嘎

    [回复]

  3. 胡戈戈 CHINA Mozilla Firefox Windows 发表于2009年08月1日08:37

    确实很拉风

    [回复]

  4. Graygift CHINA Google Chrome Windows 发表于2009年08月1日08:53

    对访问量如此低的我好想没什么用 :???:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @Graygift, 纯粹是好玩而已 哈哈

    [回复]

  5. 老N CHINA Google Chrome Windows 发表于2009年08月1日10:31

    不错,不错,挺好玩的~可惜我没啥技术实力,只好用bit.ly了~

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @老N, 老N你也来用我的吧……嘎嘎 QQ上聊

    [回复]

  6. 西风 CHINA Mozilla Firefox Windows 发表于2009年08月1日10:52

    :grin: 呵呵

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @西风, 妈的 笑起来都那么淫荡

    [回复]

  7. ZH CEXO CHINA Mozilla Firefox Windows 发表于2009年08月1日10:52

    好玩不想搭

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @ZH CEXO, 嗯对 你也用我的吧…… :oops:

    [回复]

  8. disinfeqt CHINA Mozilla Firefox Windows 发表于2009年08月1日10:57

    标题有问题,使用 Yourls 强化你的短网址系统,Yourls本来就是短网址系统...
    话说,第一次知道 Yourls 是 Andor 的 http://2-7.in

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @disinfeqt, 是强化啊 我本来用自制的简易的短网址,是强化 WordPress 的短网址 嘎嘎

    [回复]

  9. 卡提拉 CHINA Internet Explorer Windows 发表于2009年08月1日11:40

    看起来好复杂哦

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @卡提拉, 这还复杂……囧

    [回复]

  10. kramon CHINA Mozilla Firefox Windows 发表于2009年08月1日17:06

    昏,又来晚了...

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @kramon, 下次QQ上说什么都给你发个消息…… :mrgreen:

    [回复]

  11. 天天天黑 CHINA Mozilla Firefox Windows 发表于2009年08月1日18:30

    学习了 现在还不需要

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @天天天黑, 欢迎新朋友。

    [回复]

    天天天黑 CHINA Mozilla Firefox Windows 回复:

    @Showfom, :oops: 现在是老朋友了 :mrgreen:

    [回复]

  12. zwwooooo CHINA Google Chrome Windows 发表于2009年08月1日19:56

    还没打算折腾这个,看看先

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @zwwooooo, 现在国外都流行这个哦~~嘎嘎

    [回复]

  13. Dianso CHINA Google Chrome Windows 发表于2009年08月1日20:35

    去试试咋样 :lol:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @Dianso, :oops: 你的域名也很短的说。

    [回复]

  14. 章鱼 CHINA Mozilla Firefox Windows 发表于2009年08月1日22:26

    搭过 很无聊

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @章鱼, 你这种mjj的肯定觉得无聊。

    [回复]

  15. 皇冠平台 CHINA Internet Explorer Windows 发表于2009年08月2日08:32

    暂时没有用到 :grin:

    [回复]

  16. LAONB CHINA Internet Explorer Windows 发表于2009年08月2日10:05

    原来我这次真的忘记留言了 :shock:
    我要想一个有创意的短网址,那就叫肖申克高吧。 :grin:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @LAONB, 肖申克高拍黄片的?

    [回复]

    LAONB CHINA Mozilla Firefox Windows 回复:

    @Showfom, 就是那个死胖子,留个小胡子,要带曾哥拍GAY片。 :arrow:

    [回复]

  17. 小奥 CHINA Internet Explorer Windows 发表于2009年08月2日13:47

    :oops: 有意思。。

    [回复]

  18. 365hope CHINA Internet Explorer Windows 发表于2009年08月2日17:51

    短网址系统现在有很多啦,现在国内这边还比不上国外流行,以后肯定会是个趋势的。。。
    另,不知道.in是哪个国家的?当然.sg应该是新加坡的吧。
    不过这些国家的后缀域名估计价格都不便宜啊 :cool:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @365hope, .in 是印度阿三的 哈哈 我还是最喜欢我的 .im , Isle of Man 马恩群岛 男人之岛

    [回复]

  19. shun CHINA Opera Windows 发表于2009年08月2日19:59

    微博客在天朝都水产类之后,短网址作用打折扣了 :roll:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @shun, 民间流传……

    [回复]

  20. huaimao CHINA Mozilla Firefox Windows 发表于2009年08月4日10:30

    帮我弄个1.cn 咋样? :grin:

    [回复]

  21. Google NETHERLANDS Mozilla Firefox Windows 发表于2009年08月4日20:30

    Have you got English edition please tell me Thanks

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @Google, It is English.

    [回复]

  22. Lorz CHINA Mozilla Firefox Windows 发表于2009年08月5日08:30

    :shock: 看到我的那个生成书签的js了~

    顺便, :lol: ,你的头部图片在 1920*1080 分辨率下,明显不够用了

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @Lorz, 这个我知道,上回用28英寸的屏幕的时候我发现了 囧 :idea:

    [回复]

  23. 贝壳 CHINA Google Chrome Windows 发表于2009年08月5日09:32

    不错的说···

    [回复]

  24. 小熊 CHINA Mozilla Firefox Windows 发表于2009年08月6日11:12

    我的文章都不可爱 所以没必要了

    [回复]

  25. 中悦 CHINA Mozilla Firefox Windows 发表于2009年08月7日20:45

    并不是很感兴趣,日后再看情况吧……

    [回复]

  26. zrqx008 CHINA Mozilla Firefox Windows 发表于2009年09月9日22:22

    我那个能不能用?

    [回复]

  27. feixiao CHINA 发表于2009年11月16日21:38

    好玩意儿,不知几个同类的产品哪个最好。 :cool:

    [回复]

  28. YuSky CHINA Internet Explorer Windows 发表于2009年11月22日21:24

    这玩意儿~ ·不知道哪个好用~ · ·你也不推荐几个~

    [回复]

  29. sogo論壇 TAIWAN Internet Explorer Windows 发表于2009年11月24日09:48

    站長請問一下怎麼連絡你
    可不可以付費麻煩你幫我這設這短網址的功能呀?
    可以的話就麻煩你寄信給我連絡一下囉~

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @sogo論壇, 抱歉我现在才看到 没问题 直接发邮件给我就行 showfom [at] gmail.com

    [回复]

  30. 诗酒如画 CHINA Internet Explorer Windows 发表于2009年12月6日00:58

    :?: 如果有A域名,但是这个域名已经被WordPress占用了,还有办法指定这个域名为短域名的网址么?

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @诗酒如画, 可以放在子目录~

    [回复]

  31. 言午一郎 CHINA Mozilla Firefox Windows 发表于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.
    请问是出了什么问题?

    [回复]

    言午一郎 CHINA Mozilla Firefox Windows 回复:

    @言午一郎, 我的空间是默认支持mod_rewrite的!

    [回复]

    Showfom UNITED STATES Mozilla Firefox Windows 回复:

    @言午一郎, 清空你浏览器的缓存!

    [回复]

  32. 言午一郎 CHINA Mozilla Firefox Windows 发表于2010年02月11日01:00

    现在行了,多谢了!
    另问下:yourls 有语言包吗?可不可以吧他翻译成中文的,好方便中文用户呢?

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @言午一郎, 这个,用不着翻译吧

    [回复]

  33. lietlie CHINA Google Chrome Windows 发表于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 CHINA Mozilla Firefox Windows 回复:

    @lietlie, 明显数据库没写正确

    [回复]

  34. jeff CHINA Mozilla Firefox Windows 发表于2010年03月23日10:33

    没想到 这里还有从我的博客trackback来的一个地址 ; showfom 请教一下 我也想搭建一个短网址,但是我只是希望短网址中出现特定的几个字符 比如说只是出现 a f c g 这样的 应该在什么地方改呢?

    [回复]

  35. 怪獸 CHINA Google Chrome Windows 发表于2010年03月26日20:28

    求前台的代码,特指 go.php , javascript 无法实现生成短域名,可以的话,请告知代码。请发到我的邮箱。万分感谢。

    [回复]

  36. 风行 CHINA Google Chrome Windows 发表于2010年05月5日16:59

    :-x 我就无所谓了啊

    [回复]

  37. harvey CHINA Google Chrome Windows 发表于2010年06月13日10:24

    showform,
    看到有人转跳后用inframe中显示广告,我想用iframe隐藏原网址http://www.codingforums.com/showthread.php?t=56475

    我不懂代码啊,请教一下,转跳后怎样才能在inframe中显示啊;

    谢谢

    [回复]

    harvey CHINA Google Chrome Windows 回复:

    @harvey,
    我k,刚才想了想,根本就不用inframe,其实rewrite是最好的。
    博主能否帮我写一下Nginx下的规则?

    谢谢 :mrgreen: :mrgreen:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @harvey, 我也不会哦

    [回复]

  38. harvey CHINA Google Chrome Windows 发表于2010年06月13日20:37

    :) :) 谢谢回复 rewrite比较麻烦,不过看你写了那么多,呵呵

    那个inframe的方法能解决不?

    [回复]

  39. harvey CHINA Google Chrome Windows 发表于2010年06月13日20:40

    我刚找到转跳的那个页面 :-o :-o
    yourls-go.php :-o :-o
    修改了一顿也不行,因为它是301转跳,inframe发挥不了作用, :cry: :cry:

    [回复]

  40. harvey CHINA Google Chrome Windows 发表于2010年06月13日20:42

    前几天,从你这里往外点连接,看到你的一个朋友,加了短网址转跳后加了广告;
    现在死活找不到,我 :cry: :cry:

    [回复]

    Showfom CHINA Mozilla Firefox Windows 回复:

    @harvey, 见 imbolo.com

    [回复]

  41. harvey CHINA Google Chrome Windows 发表于2010年06月13日22:14

    谢谢,解决了;
    pretty link刚好有这么一个选项!
    cloak link

    正在研究怎么通过php直接调用

    [回复]

  42. max CHINA Internet Explorer Windows 发表于2010年07月26日21:03

    有个哥们遇到这样的问题,好了,把链接发给他了

    [回复]

  43. snowxh Mozilla Firefox Windows 发表于2010年07月30日22:21

    请问下如果建在wordpress的子域名下面数据库应该怎么写呢 写和WordPress一样的么

    [回复]

欢迎写下您的评论,其中 * 为必填项目

这里写下你想说的话

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:


Follow us on Twitter