PHPの短縮リンクライブラリ shorty でウェブアプリ作ってみた

    >


こんなサービス()を作りました。

114514.click — 無料短縮リンクサービス

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_187b5f98-9c0c-4b84-ba32-6b3f775c1fc3.png

実はすでに,yourlsという有名な短縮リンクのライブラリを使っているのですが、yourlsってサブドメインに使えないんですよね。
あと複数利用もできないです。同じドメイン上の違うディレクトリで、というのが無理。
yourlsはアクセス解析とかAPIもありますし、さすが結構使いやすいだけにそういうとこが残念なのですが、

ということで探した結果、PHPだとこれくらいしかなかった。

mikecao/shorty: A simple URL shortener for PHP

小さなライブラリですが、もともと最小限の機能でいいからサブディレクトリで複数使えるようなやつないかな、というところだったので、渡りに船です。

では解説。簡単です。(まぁ、.htaccessの記述(qの部分)に詰まって結局ライブラリ全部軽く目を通してやっとできたわけなのですが。README.mdもっとしっかりしてくれ……)

データベースを作ります。データベース名は任意。
ディレクトリを移動します。公開したいURLがサブディレクトリなら、cd ~/domain.name/public_html/subdir/みたいにそこまで移動します。
以下コマンド。

git clone https://github.com/mikecao/shorty.git
mv shorty/* .
mysql -u [username] -h mysql2007.xserver.jp -p [db_name] < database.sql

rmate .htaccess 
rmate config.php 

.htaccessは以下をコピペでOK。allow-originしないとAPI的な使い方はできないので必要に応じて。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]

# Header set Access-Control-Allow-Origin "*"

config.phpは以下に例を示します。


$hostname = 'https://114514.click/subdir'; $connection = new PDO('mysql:dbname=db_name_here;host=mysql2007.xserver.jp', 'username', 'pass'); $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $salt = '5'; $padding = 6;

そしたら、もう完成なので、GETリクエストしてみましょう。

https://114514.click/subdir/index.php?url=https://google.com&format=text

できましたでしょうか。

データベース見てみるとわかりますが、(SQLでもわかるか)簡単ですがヒット数も見れるみたいです。

リファラーとか見れないのは惜しいですが、まぁ、。リファラーと地域情報も格納してくれればyourlsと何ら機能的には変わらないくらいになるんですけどねぇ…

まぁ、取り急ぎで作れますし、手順分かってれば3分くらいでAPIまで作れちゃうので、良いと思います。

rmate remote-atomでSSHしながら直接ファイル編集する。





お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


Close Menu