短縮URLの実装ってどうなってんだろ?

プロジェクトで使っている、お客さんのWikiがあるんだけど、
そこに短縮URL機能がバインドされている。


どんなもんかなぁと思って、ちょっと考えてみた。


で、正しいのかわからないけど↓こんなんどうかな?と。

    • -

画面遷移は、、、


元URL入力画面

短縮URL結果画面

    • -

やる処理は、、、


登録ボタンを押下で、
短縮URL名を生成する
短縮URL用の.phpファイルを作る
 (PHPでやろうと思っています。)
・生成した.phpファイルの中身
 ⇒元URLにリダイレクトしてやるだけ。

    • -

ん?簡単なんじゃねぇの?
古い短縮URL用の.phpを定期的に掃除してやんなきゃですけど。


ということで、とりあえず、リダイレクト用の.phpファイルを
作ってみる。


ApacheのDocumentRootに↓のようなhoge.phpを作る

<html>
<body>
<?php
header("Location: http://localhost/redirect/hogehoge.php");
?>
</body>
</html>


で、ApacheのDocumentRoot/redirectにリダイレクト先の.phpファイルを配置。

<html>
<body>
<?php
print "リダイレクト先です";
?>
</body>
</html>


で、http://localhost/hoge.php にアクセスしてみます。


見事リダイレクトされました。(アイコンTracっすけど。。w)


へー。簡単。
来週登録機能作ってみよっかなぁ。

短縮URLの続き。1時間くらいで出来ました。

こんな感じで登録して↓


こんな感じで短縮名が取得できます。


登録画面は、、
フォームの内容をサブミットするだけ

<html>
<body>
<form action="makeshorturl.php" method="get">
<input type="text" size="100" maxlength="100" name="longurl" value="">
<input type="submit" value="元URL登録">
</form>
</body>
</html>


短縮名表示画面は、、
コメントをのまんまです。

<html>
<body>
<?php
  // ランダムファイル名に使う値
  $rondomfilename = mt_rand(1,100000);
  // ファイル作って
  $handle = fopen('./redirect/'.$rondomfilename.'.php', 'a');
  // リクエストされたURLをファイルに書き込んで
  fwrite($handle, $_GET['longurl']);
  // ファイルに閉じて
  fclose($handle);
  // 画面に表示する
  edho '短縮名は';
  echo 'http://localhost/redirect/'.$rondomfilename.'.php';
  echo 'です';
?>
</body>
</html>

エクセプションのハンドリングとか全然してないですけど。。


で、↓こんな感じでファイルができて、

ファイル開くと↓


あ、出来上がったファイルにHTMLとリダイレクトの記述してないや。。。


ま、お手軽にできました、、、ということで。。。