短縮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とリダイレクトの記述してないや。。。
ま、お手軽にできました、、、ということで。。。



