折腾日志 | Yourls——短链接生成器与短域名获取
前言¶
你是否遇到过这样的场景?你有一个链接,例如https://detail.tmall.com/item.htm?spm=a230r.1.14.1.16b64046kb50gr&id=563033197139&ns=1&abbucket=5
,需要分享给朋友,这个链接长而且不好记忆,需要经常用到的时候也不方便,假设你需要发微博,由于字数限制,链接长度越短越好,这时候如果有一个链接https://short.cn/tmall
经过重定向可以指向前文的网址,那边就会很美观且方便,而这就需要用到短链接生成技术。
其实短链接的作用主要在于数据统计、控制访问、便于管理。另外相同的页面,短链接与原链接生成的二维码的复杂度也大大不同。目前市面上主要的短链接服务可以参考:短网址服务,我们该怎么选?,其中安照优先级介绍了部分优质的服务提供商。
除了使用服务商提供的短链接生成服务外,我们其实还可以自己搭建一个这样的服务。原理很简单,通过某种算法将长链接A
转化为一个短字符串B
,浏览器结合域名C
访问C/B
,服务器响应跳转至A
,并在过程中完成数据的统计。目前有很多开源的短链接服务,其中之一就是今天的主角Yourls
。
Yourls¶
YOURLS stands for Your Own URL Shortener. It is a small set of PHP scripts that will allow you to run your own URL shortening service (a la TinyURL or Bitly).
Running your own URL shortener is fun, geeky and useful: you own your data and do not depend on third-party services. It is also a great way to add branding to your short URLs, instead of using the same public URL shortener everyone uses.
Yourls
的特性是开源免费,可以管理、统计每一个短链接的数量,提供API接口,而且具有众多插件,便于进行二次开发,下面就一起搭建一个自己的软链接服务。
准备¶
Yourls
是基于PHP和MySQL开发的,所以需要提前准备好:
- Apache(2.4版本及以上)或Nginx服务器
- PHP(7.4版本及以上)
- MySQL(5.0版本及以上)
另外如果需要使用API接口,还需要安装PHP cURL拓展。
安装¶
下载¶
从Releases下载最新版本的安装包,目前使用的是1.8.1版本,并解压至工作目录
配置文件¶
将user
目录下的config-sample.php
复制备份命名为config.php
,修改配置如下,更多设置请参考Config
1 | // 数据库配置 |
服务器设置¶
- Apache
需要开启mod_rewrite
模块,编辑.htaccess文件:
1 | # 根目录http://yoursite/ |
- Nginx
请注意宝塔用户安照文档中的操作可能无效,可以更改为:
1 | server { |
安装¶
访问http://domain.com/admin
完成初安装,输入配置文件设置的账号、密码登陆后台。如果安装出错,可能是PHP或者MySQL版本不符合要求,或者是数据库初始化失败,可以按照参考资料3进行解决。
短域名¶
短链接最重要的还是根域名要短,但是以.com
、.cn
、.org
、.top
、.xyz
等常见一级域名的短域名基本已经抢注完成,剩下的价格也很昂贵。为了减小这个问题带来的影响,有两种解决方案。
付费域名¶
在我国的.cn
域名下有一类特殊的二级域名:按照国家各个省级行政区划分的行政区划域名,例如bj.cn
代表北京,sh.cn
代表上海等。这些域名注册比较少,一些比较短的域名(例如fox.hn.cn
,湖南)很有可能没有被注册,而且价格很便宜。目前西部数码、域趣网络等都提供这一类域名的注册。
免费域名¶
由于特殊原因,Freenom目前已经停止注册新的免费域名。
Freenom是国际著名的免费域名提供商,可以提供.tk
(托克劳)、.ml
(马里)、.ga
(加蓬)、.cf
(中非共和国)、.gq
(赤道几内亚)等国家一级域名,除特殊域名(少于4个字母,特殊含义等)外均可免费获取。
在Freenom获取免费域名有几个需要注意的地方:1. 需要科学上网2. 注册账号时,填写的地址信息一定要与科学上网后的IP地址保持一致,最好在美国!最好在美国!最好在美国!3. 点击上图的现在获取
会显示不可用,此时你只需要在搜索框中输入ffox.ga
就可以解决,自动帮你添加购物车
拓展与配置¶
Yourls
具有丰富的插件和主题,还有各种语言的翻译包,所有的插件都能在awesome-yourls找到介绍与项目地址。下面介绍一些我使用的拓展。
插件¶
- Allow Hyphens in Short URLs
自带的插件,允许短链接中出现连字符。
- Random ShortURLs
默认情况下,短链接按照顺序生成,从1开始,但是更好的方式是使用时间戳或随机字符串,这一个插件就可以随机生成短链接字符串,还可以设置字符串的长度。
- Cache stat pages
后台查看统计报表的数据都是实时统计的,此插件可以将缓存统计报表,加快访问速度。
- YOURLS Static Titles
当你输入一个长链接生成短链时,YOURLS会抓取长链接对应页面的标题信息,所以创建短链接的速度会受到页面访问速度的影响,此插件可以经过设置跳过抓取标题,加快生成速度。除了这一种方案以外,还可以根据参考资料4进行配置。
翻译¶
下载汉化包中的zh_CN.mo
文件,移动至/user/languages
文件夹下,设置配置文件中的语言为zh_CN
即可。
主题¶
目前官方页面的主题只有3个,大家可以搜寻比较好看的。我使用的主题是Sleeky,不仅很好看而且还会添加前端首页。
- 下载文件
- 移动
sleeky-frontend
文件夹到网站根目录下 - 配置
frontend/config.php
- 移动
sleeky-backend
文件夹至user/plugins/
目录 - 在后台管理中
example.com/admin/plugins.php
启用插件
其他¶
查看统计数据,可以在后台的管理界面中数据统计查看,也可以在短链接后面添加+
查看,例如https://short.cn/tmall+
,包括访问量、地区和来源等。