katmore / shrturl
一个URL缩短Web服务
Requires
- php: >=7.0.1
- ext-pdo: *
- ext-pdo_mysql: *
- ifsnop/mysqldump-php: 2.*
This package is not auto-updated.
Last update: 2024-09-28 19:47:21 UTC
README
一个URL缩短Web服务
Shrturl是一个类似企业级URL缩短服务的RESTful Web服务(例如bit.ly)。
术语
- 代码或短代码:包含在短URL中作为完整URL参考的唯一部分(令牌)。大多数URL缩短器中使用的通常是看起来很混乱的字母数字字符序列。
- 短URL:包含短代码的完整URL(例如:http://example.com/shrt.php?code=abc)
- 目标URL:需要转换为短URL的完整URL
安装
- 将shrturl项目提取/复制到某处
git clone https://github.com/katmore/shrturl.git
cd shrturl
- 使用Composer创建自动加载器并解决依赖关系...
composer update
- 运行db-install.php脚本...
php bin/db-install.php
- 将app/config/shrturl/mysql-sample.ini复制到mysql.ini并编辑...
cp app/config/shrturl/mysql-sample.ini app/config/shrturl/mysql.ini vi app/config/shrturl/mysql.ini
- 使用随机生成的短代码初始集填充数据库...
php bin/make-codes.php 1000
Web服务使用
-
重定向到目标URL
https://example.com/shrt.php?code=abc(其中'abc'是"缩短URL"请求返回的代码)
-
显示短URL,如果不存在则创建
-
POST请求方法
https://example.com/shrt.php?target=http://my_really_long_uri- 将名为'POST'的查询变量添加到查询字符串中也将调用'POST'(如果使用GET请求方法)
https://example.com/shrt.php?POST&target=http://my_really_long_uri
- 将名为'POST'的查询变量添加到查询字符串中也将调用'POST'(如果使用GET请求方法)
-
如果想要显示具有基本设置的短URL,而不是shrt-config中配置的默认设置,请添加名为'url_base'的查询变量和值
的URL,'url_base'的值应与shrt-config.php中的配置变量相对应
-
POST请求方法
https://example.com/shrt.php?target=http://my_really_long_uri&url_base=reallyshort
- 将显示/创建: http://rlysh.rt/abc
- 请参阅shrt-config-example.php中的示例
[https://github.com/katmore/shrturl/blob/master/shrt-config-example.php]
-
-
更改目标URL
- POST请求方法
https://example.com/shrt.php?changeTarget=http://a_different_really_long_uri&code=abc
- 将名为'POST'的查询变量添加到查询字符串中也将调用'POST'(如果使用GET请求方法)
- POST请求方法
-
缩短多个URL
- POST请求方法
- 其中'target'是一个有效的JSON文档,其结构如下
{"shrt":{"target":["http://target_url_1","http://target_url_2","http://etc"]}}- 将名为'POST'的查询变量添加到查询字符串中也将调用'POST'(如果使用GET请求方法)
Web服务部署建议
-
为此服务使用2个不同的FQDN(完全限定域名)
- FQDN #1用于'最终用户'短代码,例如
- FQDN #2用于API调用短代码服务,例如
-
例如
- 在'最终用户FQDN'(#1)上
- 根据本文档中安装部分的描述安装/配置项目
- 除了'default'外,还配置一个url_base
请参阅shrt-config-example.php中的url_base部分
- 包含Web服务器的.htaccess或等效配置示例
- http://rlysh.rt/abc现在将工作
- 其中'abc'是之前调用短API提供的短代码
- 在'API FQDN'(#2)上使用描述
在API请求中获取短代码时,请确保:在查询中提供对应于在shrt-config-example.php中设置的'最终用户'的'url_base'参数
- 在'最终用户FQDN'(#1)上
法律
版权
平面Web应用 - https://github.com/katmore/flat-webapp
版权所有 (c) 2012-2017 Doug Bird。保留所有权利。
许可证
"shrturl" 是版权免费的软件。
您可以在以下任一许可证的条款和条件下重新分发和/或修改它:" MIT 许可证 (MIT)";或 "GPL v3 许可证" 的条款和条件。