無趣味の戯言

📄️

URL短縮ツールを作りました

こんにちは、だいちゃんです。

いまさら需要がないのは承知の上で、URL短縮ツールを自作してみました。

本当は udc.id ってドメインが空いてたので、ドメイン買ってやってみたかったのですが、お遊び&誰にも使って貰えない割にそこそこな出費になりそうだったので、udcxx.me ドメインからサブドメインを作ってそのなかに入れました。

なので、短縮URLといいつつ結構長いですw

経緯

あるYouTube動画 でコーディングしているのを観てたら、なんか久しぶりに何かを作ってみたい気持ちになったので、パッと思いつきで作ることにしました。

題材としては難易度は低めで、初心者向きだと思いますが、僕が避け続けているPHPとかDB操作が程良く含まれているので、楽しみつつも勉強になりました。

しくみ

主に、3つのページで構成されています。

app.udcxx.me/surl/

ツールのトップページで、短縮したいURLを入力して、新たに短縮URLを生成することができるページです。

「生成する」ボタンを押すと、PHP側で重複しないパラメータを生成して、データベースに登録します。処理に成功すると、短縮されたURLが画面上に表示される仕組みになっています。

いまのところ、パラメータには、アルファベット(大文字・小文字)+数字の58種が4文字ランダムで生成されます。これだけでもざっくり 11,316,496通り くらいの余裕があるので枯渇することはないはず。というか、データベースにこんなに登録できないはず(設定あまりわかってない)。

app.udcxx.me/s/f/

このURLの末尾に、生成されたパラメータを ? とともに付与することで、元のURLにリダイレクトします。

PHP側でパラメータを取得し、データベースから短縮前のURLを探して、リダイレクトさせるといった単純な仕組みです。一応、リダイレクトは5秒後に実行されるので、その間、運が良ければ広告が表示される...かも。

例えば、上記のURLだと僕のポートフォリオサイトにリダイレクトされます。

※ ポートフォリオのURLのほうが短いので実質、短縮はされてない...

app.udcxx.me/s/

いまはまだ利用しませんが、将来的に広告なしのPro版をリリースすることを想定して、/f/ なしのページも用意しました。

例えば、上記もポートフォリオへ飛びますが、5秒待たずに即時でリダイレクトされます。


夏休みの自由研究的な感じで、トータル1日くらいでサクッと作れたので、初心者にはおすすめの題材かもしれません。

今後は、Pro版を追加するため、ユーザー管理とか、ユーザーごとに生成したURL一覧の表示などを実装していけたらと思っています。

なにより、久しぶりにちゃんと動いて公開できるものが作れたので、達成感があっていい週末でした😙

Buy Me A Coffee