{"id":20934380,"url":"https://github.com/chenlongqiang/easy-short-url","last_synced_at":"2025-05-13T20:31:20.098Z","repository":{"id":55188473,"uuid":"131702013","full_name":"chenlongqiang/easy-short-url","owner":"chenlongqiang","description":"ESU 短网址，可在 Laravel、Yii、ThinkPHP 等框架 Composer 包引入，也可以独立搭建短网址站点","archived":false,"fork":false,"pushed_at":"2022-05-12T04:00:51.000Z","size":79,"stargazers_count":88,"open_issues_count":0,"forks_count":19,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-02-18T22:03:55.539Z","etag":null,"topics":["composer","laravel","mysql","php","shorturl","thinkphp","yii2"],"latest_commit_sha":null,"homepage":"http://lukachen.com/projects","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chenlongqiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-01T10:43:22.000Z","updated_at":"2024-01-23T17:35:55.000Z","dependencies_parsed_at":"2022-08-14T15:31:19.699Z","dependency_job_id":null,"html_url":"https://github.com/chenlongqiang/easy-short-url","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenlongqiang%2Feasy-short-url","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenlongqiang%2Feasy-short-url/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenlongqiang%2Feasy-short-url/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chenlongqiang%2Feasy-short-url/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chenlongqiang","download_url":"https://codeload.github.com/chenlongqiang/easy-short-url/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225198460,"owners_count":17436900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","laravel","mysql","php","shorturl","thinkphp","yii2"],"created_at":"2024-11-18T22:09:09.232Z","updated_at":"2024-11-18T22:09:09.843Z","avatar_url":"https://github.com/chenlongqiang.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# easy-short-url 短网址 2.x\n- 使用方式: 可在 Laravel、Yii、ThinkPHP 等框架 Composer 包引入，也可以独立搭建短网址站点\n- 实现原理: id 自增（转自定义62进制）  \n- 存储: MySQL\n- 缓存: 可在配置项 ESU_CACHE_OPEN、ESU_CACHE_CLIENT、ESU_CACHE_LIFETIME 定制\n- 安全: 转短网址、跳转长网址授权\n\n## 导航\n- [1.x 版本](doc/1.x_README.md)\n- [1.x 升级 2.x 指南](doc/1.x_upgrade_2.x.md)\n\n## 2.x 相比 1.x 新特性\n- 安全跳转，授权请求密钥、跳转域。基于安全考虑，跳转长网址域名，必须授权才可跳转\n- 缓存策略，可配置。可在配置项 ESU_CACHE_OPEN、ESU_CACHE_CLIENT、ESU_CACHE_LIFETIME 定制\n\n## 使用步骤\n1.获取包\n```\ncomposer require chenlongqiang/easy-short-url \"^2\"\n```\n\n2.创建数据库\n```\nmysql -u username -ppassword\ncreate database esu character set utf8 collate utf8_general_ci;\n```\n\n3.创建数据表\n```\nmysql -u username -ppassword esu \u003c doc/2.x_esu.sql\n```\n\n4.在项目根目录下，创建配置文件 .env\n```\ncd 你的项目根目录\ncp ./vendor/chenlongqiang/easy-short-url/.env_example ./.env\n```\n\n5.vi .env 修改配置项\n```\n# 短网址服务域名\nESU_DOMAIN=http://s.lukachen.com\n\n# 数据库配置\nESU_DB_HOST=127.0.0.1\nESU_DB_DBNAME=esu\nESU_DB_USERNAME=root\nESU_DB_PASSWORD=root\nESU_DB_PORT=3306\nESU_DB_CHARSET=utf8\n\n# Redis 配置\nESU_REDIS_DSN=tcp://127.0.0.1:6379\n\n# 是否开启缓存，可选项 0: 不开启, 1: 开启 (开启缓存，数据表跳转统计将失效)\nESU_CACHE_OPEN=0\n\n# 缓存方式，可选项 Filesystem: 本地文件缓存, Redis: 缓存 (Redis 缓存，依赖 ESU_REDIS_DSN 配置)\nESU_CACHE_CLIENT=Filesystem\n\n# 默认缓存时间 604800 秒 (1星期)\nESU_CACHE_LIFETIME=604800\n\n# web_admin 页 access_key\nESU_WEB_ADMIN_ACCESS_KEY=esu\n```\n\n6.授权请求密钥、跳转域名\n```\n在数据表 esu_access 添加数据即可\n```\n\n## 方法列表\n1.生成短网址 toShort\n```\n$shortUrl = \\EasyShortUrl\\EasyShortUrl::getInstance()-\u003etoShort('http://lukachen.com/archives/328/');\n```\n\n2.获取原网址 toLong\n```\n$longUrl = \\EasyShortUrl\\EasyShortUrl::getInstance()-\u003etoLong($code);\n```\n\n完成以上步骤，即可在项目中引入本包，toShort、toLong 完成长短链接转化\n如果不需要配置独立的转链网站，后面就不用看了 :)  \n\n## 需要搭建转链网站\n需搭建类似 http://s.lukachen.com/web_admin 这样的网站，继续以下步骤（本项目已经提供前端页面，做好域名和服务器配置即可）  \n\n1.服务器配置\n```\n1) apache or nginx 配置 root 目录至 vendor/chenlongqiang/easy-short-url/\n2) 配置 rewrite 重写至 index.php，不清楚的自行 baidu、google 或联系我\n```\n\n2.web页\n```\n地址: http://(你的短网址域名 ESU_DOMAIN 配置项)/web_admin\n授权: web_admin 页，使用 ESU_WEB_ADMIN_ACCESS_KEY 配置项作为 access_key\n```\n\n3.api\n```\n地址: http://(你的短网址域名 ESU_DOMAIN 配置项)/api_gen\n方法: POST\n参数:\n    type: to_short 或 to_long\n    content: url  \n    access_key: api 授权密钥，可在 esu_access 新增\n```\n  \n转链网站搭建完成 :)  \n\n## 我的短网址服务，体验地址\nhttp://s.lukachen.com/web_admin  \n\n- 默认授权码 esu，已添加 lukachen.com 域名为合法跳转域，可用该跳转域名体验\n- 如长网址为：http://lukachen.com/friends 可缩短网址为 http://s.lukachen.com/LS\n\n### 我的短网址，提供授权使用\n需使用我搭建的短网址服务，请发邮件 365499684@qq.com 申请。跳转域名合理，我将会邮件回复授权码，并添加合法跳转域名  \n特别说明：\n- `我的短网址服务 s.lukachen.com` 不对微信业务开放，因为微信分享非常容易封禁域名，影响到大家使用\n- 使用本库自建服务，`自己决定跳转域名范围和使用场景`，键盘侠请自己睁大眼睛看清楚，懒得争论\n\n### 我的短网址，申请模版\n```\n因 xxx 业务需要，申请短网址服务，跳转目标域名为 \nlukachen.com\ngoogle.com\nbaidu.com\n```\n\n## 联系我\n- QQ: 365499684 (添加时请备注【短网址】)\n- Blog: http://lukachen.com/projects\n- 短网址 Demo 站点: http://s.lukachen.com/web_admin\n- 有疑问，欢迎 Issues\n- 有更棒的 Code 建议，欢迎 Pull Requests\n- 对你有帮助，请动动小手 Star Thank You :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenlongqiang%2Feasy-short-url","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchenlongqiang%2Feasy-short-url","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchenlongqiang%2Feasy-short-url/lists"}