7月
01
2006

TinyURLのようなRedirectionの仕組み

ちょっと思いついてやってみたら簡単にできたので、報告します。
TinyURLのようなRedirectionの仕組みを実現する方法です。
普通のホームページではだめで、どこかのホスティングサービスを利用しているか、自社サーバーを構築している場合です。

以下のように設定するとできるようになります。

1. まず .htaccessで以下の行を追加する。

ErrorDocument 404 /jump.php

この意味は、HTTPサーバーで404のエラーが起きたら、/jump.php へ飛ぶという意味だ。404のエラーとは、URLが見つからなかったときのエラーだ。/jump.php の名称は実際にあるファイルならばなんでもよい。

2. Redirectionをするプログラムjump.phpをつくる。

<?php
$mysql_id = “”;
$mysql_password =””;
$mysql_database = “”;
$mysql_table = “”;
$request_uri = substr($_SERVER[‘REQUEST_URI’],1);
$con = mysql_pconnect(“localhost”,
$mysql_id, $mysql_password) or die(“Could not connect”);
mysql_select_db (
$mysql_database);
$result = mysql_query(“select * from
$mysql_table where code=’$request_uri’ “, $con);
if (mysql_num_rows($result) == 0) {
    print “404 URL is not fired!”;
    mysql_close($con);
    exit;
} else {
    $url = mysql_result($result, 0, “url”);
}
mysql_close($con);
header(“Location: “.$url);

?>

$mysql_id, $mysal_password, $mysql_database, $mysql_tableは、みなさんの環境に合わせて欲しい。その他も環境に依存すると思う。

3. MySQLでテーブルを作成する。
2つの列、code, url だけの文字列のテーブルだけ。

4. あとはこのテーブルに対応するコードとURLを記入していけばよい。
テーブルに書くプログラムはちょっと面倒なんで後で書こうと思う。

以上、ファイルが見つからないというエラーを利用して、他のページにジャンプする仕組み(Redirection)でした。

こうすると、
https://solisart.com/blog と入力すると、 http://plaza.rakuten.co.jp/solis/ へジャンプします。

他にも以下のようになります。
https://solisart.com/yahoo → http://www.yahoo.co.jp/
https://solisart.com/google→ http://www.google.co.jp/

これがTinyURLが実施しているしくみです。 http://tinyurl.com/

実際のディレクトリやファイルの方が優先されますので注意してください。

Written by in: 楽天日記 |

コメントはまだありません »


コメント&トラックバック




トラックバック URL

コメントのRSS feed