YOURLS 是 Your Own URL Shortener,是一个使用 PHP 编写的,非常强大的短链接平台。
官网地址:http://yourls.org
- 基于 PHP 的免费开源短链接平台
- 点击历史和频次统计、推介跟踪、访客地理位置等等
- 有丰富的插件架构,可以更好地拓展功能
- 方便的 API
- 支持跨域访问
- 安装配置方便
安装
手动安装
- 从 Yourls 的 GitHub 主页 https://github.com/YOURLS/YOURLS/releases 下载最新版包;
- 复制 /user/config-sample.php 到同目录下并改名为 config.php,
cp /user/config-sample.php /user/config.php
- 打开
vim config.php
,根据个人情况进行数据库、管理员账户等配置; - 将所有文件上传到网站的根目录,可能是 public_html 或者
/var/www/
等等; - 访问 http://your-own-domain.com/admin/ 来进行安装。
yourls 的用户名和密码是以字符串形式存放在配置文件中的,需要在设置时指定。
Docker
推荐使用 Docker 安装
可以使用 yourls 目录下的 docker-compose 启动。
配置
基本的配置可以分为三个部分
数据库设置
配置文件在目录下 /user/config.php
/** MySQL 数据库用户名 */
define( 'YOURLS_DB_USER', 'your db user name' );
/** MySQL 数据库密码 */
define( 'YOURLS_DB_PASS', 'your db password' );
/** 用来存储 Yourls 数据的数据库 */
define( 'YOURLS_DB_NAME', 'yourls' );
/** 如果你不是用的标准 hostname 端口,请用'hostname:port'这种格式配置,例如 'localhost:8888' 或者 '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
/** MySQL 表前缀字符 */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
站点设置
/** YOURLS 安装 URL -- 字母小写,并且结尾不带斜线
** 如果你想配置到 "http://sho.rt", 就不要在浏览器中用 "http://www.sho.rt"(反之亦然) */
define( 'YOURLS_SITE', 'https://your-own-domain.com' );
/** 服务器时区 GMT 值,北京时间 +8 */
define( 'YOURLS_HOURS_OFFSET', 8 );
/** YOURLS 语言
** 更改此项设置来使用你优先的语言翻译文件,默认语言为英语
** 翻译文件 (a .mo file) 需要提前放在 /user/language 目录下
** 通过查看 http://yourls.org/translations 获取更多翻译信息 */
define( 'YOURLS_LANG', '' );
/** 允许多个短链接对应同一原链接
** 设置为 true 则表示短链接和原链接一一对应(默认 Yourls 设置)
** 设置为 false 则允许多个短链接对应同一原链接(类似 bit.ly 表现) */
define( 'YOURLS_UNIQUE_URLS', true );
/** Private 表示后台管理需要密码登陆作为默认手段来实现管理
** 设置为 false 意味着对公众开放模式(例如在内网配置或者测试安装)
** 查看 http://yourls.org/privatepublic 获取更多细节 */
define( 'YOURLS_PRIVATE', true );
/** 用来加密 cookies 的一串随机哈希值,并不需要记住这个,要让它尽量长而复杂,可以从 http://yourls.org/cookie 来获取随机哈希值 **/
define( 'YOURLS_COOKIEKEY', 'modify this text with something random' );
/** 登陆管理站点的用户和密码,密码可以是纯文本或者加密的哈希值
** YOURLS 将会自动加密本文件中的纯文本密码
** 查看 http://yourls.org/userpassword 获取更多信息 */
$yourls_user_passwords = array(
'username' => 'password',
// 'username2' => 'password2',
// 你可以利用'login'=>'password'这种格式来添加更多行
);
/** 调试模式,用来输出一些内部信息
** 对于运行中的站点默认是 false,在编码或者获取提交信息时才会启用 */
define( 'YOURLS_DEBUG', false );
链接设置
/** 链接缩短方式:36 或者 62 **/
define( 'YOURLS_URL_CONVERT', 36 );
/*
* 36: 生成数字和小写字母组成的短链接关键字(例如:13jkm)
* 62: 生成数字大小写混合的短链接关键字(例如:13jKm 或者 13JKm)
* 选择一个来设置,你开始创建连接之后最好别再更改
*/
/**
* 保留关键字(这样子在创建链接时就会屏蔽这些关键字)
* 这里会填上负面、潜在误导性的词语
*/
$yourls_reserved_URL = array(
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick',
);
主页设置
默认情况下如果安装了 yourls,那么 https://sho.rt 根目录是空的,如果不想要展示一个空空的根,可以在根目录下新建 vim index.php
加入以下内容
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://yourdomain.com");
?>
修改用户名密码
yourls 中的密码可以直接修改 /user/config.php
文件中
<?php
$yourls_user_passwords = array(
'name' => 'md5:71688:0ce4',
);
直接修改后面密码 hash 部分,再下一次启动时 yourls 会自动加密该密码。
如果使用之前我的 Docker 方式安装的,需要在 docker-compose.yml 中设定好密码,这样重新启用 docker-compose 即可。
插件
官方在 GitHub 上总结了非常多的插件,可以根据自己的需求找到想使用的插件。
使用插件的基本流程如下,所有的插件都可以使用这样的方式安装启用:
- 将插件拷贝到
/user/plugins/插件名/
目录下 - 然后在管理页面激活插件
Allow Hyphens in Short URLs
官方默认插件,允许在短域名中加入 -
短横线,有些时候为了易读性加上字符分割还是非常易识别的。
Random Keywords
默认 yourls 的短链接是数字递增的,随机短链接插件将短链接变成随机字符串。
YAPCache
将点击缓存,减少数据库读
YAPCache 是 Ian Barber’s YOURLS APC Cache 插件的 fork 版本,增加了缓存等等功能,不要同时安装这两个版本。
Conditional Toolbar
可以修改短域名的模式,比如将 https://sho.rt/abc 变为 https://sho.rt/m/abc 这样的模式,那么可以在 /m/
下显示一个工具栏,不推荐使用,影响用户体验。
- 源码地址:https://github.com/YOURLS/conditional-toolbar
- http://blog.yourls.org/2011/03/yourls-plugin-example-conditional-toolbar/
Qr code
在短链接后面添加 .qr
显示二维码
Public Prefix ‘n’ Shorten
处理 http://sho.rt/https://google.com 这样的链接不指向 admin
google-analytics-for-yourls
在 admin 中可以添加 track 变量,这个插件会添加一些 Google Analysis 的参数 GA campaign info,对于需要大量追踪信息的商家来说很好的插件。
google-analytics-yourls-plugin
给 stats & admin page 添加 GA 分析,只有当访问 https://gtk.pw/ins+ 这样带 +
号的短链接才会被追踪到 Google Analytics
在将 plugin.php 放到 user/plugin/ganalytics 目录下之后,需要在 config 文件中定义
define(GANALYTICS_ACCOUNT, "UA-XXXXXX-UU");
YOURLS-GA-MP-Tracking
另一个 GA track
什么时候使用短链接
短域名服务或许是兴起于 Twitter 只能写 140 个字开始,因为有限的文字数量,所以必须要非常有效的传递每一个信息,所有不能把文字浪费在长链接上,自从 t.co 开始就源源不断的开始涌现出各种各样的短链接服务,所以应该在什么时候使用这个服务呢,我总结了一下我个人用的几个情况
- 需要追踪链接点击情况,虽然用 Google Analysis 也能够做,但是短链接明显更加简单
- 需要隐藏掉长链接的尾巴,一方面是为了链接美观,一方面也是隐藏真实的长链接
301 和 302 跳转的区别
默认情况下 yourls 使用的是 301 跳转,但是这两个有着一定的区别,可能对于普通用户而言都是跳转,表现出来是一样的,但是对于搜索引擎,或者浏览器等等,他们的处理方式就有区别。
- 301 表示这个页面地址已经永久的移动到了另一个地方
- 302 表示这个页面临时被跳转到另一个地方
所以对于搜索引擎来说需要考虑是否要保留原始地址,或者是否要用新页面来替换老页面。而浏览器对于 301 跳转会进行缓存。
API
http://yourls.host/yourls-api.php
related
- [[kutt]]