以前書いたようにbitly.comの無料サービスを使うのがお手軽です。
統計情報もでますし。
しかし、実はURLのホスト名部分は
独自URLでも"bit.ly"でも同じ結果になりますし、
ファイル名部分はユーザ側でコントロールできませんし、
プライベートにしか使いたくないURLを登録するのは
なんだか気が引けたりと、
いいことばかりではありません。
私の短縮URLの主な利用動機は、
URLを紙に書いて渡すのが楽ということだったりするのですが、
そもそもアルファベットの大文字小文字入り乱れたURLが
インターネット初心者には心の障壁になるようで
バリアフリーを目指すこの世の中に逆行している気配があります。
ということで、
ServersMan@VPS(Debian,32bit)でちょこっとだけ
テスト運用してみることにしました。
そのうちデータベース連携させようとは思いますが、
今回はさわり程度ということでご了承ください。
まずapacheの設定変更です。
設定ファイル"/etc/apache2/sites-available/default"の
RewriteEngine Onの行の直後に
RewriteRule ^/q/(.*)$ /q.php?shorturl=$1 [PT,L]の行を追加し、apacheを
# /etc/init.d/apache2 restartで再起動します。
こうすることで
http://<サーバ名>/q/<文字列>へのアクセスがapacheの内部的に
http://<サーバ名>/q.php?shorturl=<文字列>として処理されることになります。
では処理するためのPHPスクリプト"/var/www/html/q.php"を
サンプル程度に作ってみます。
基本的に
$_GET["shorturl"];で得られた文字列からどこのURLに飛ぶかを判断して
そのURLにリダイレクトさせるだけです。
例えば
http://<サーバ名>/q/gをgoogleに、
http://<サーバ名>/q/yをyahooに飛ばしたければ"q.php"は以下のようになります。
<? $shorturl=$_GET["shorturl"]; $url=""; switch($shorturl){ case "g": $url="http://www.google.com"; break; case "y": $url="http://www.yahoo.co.jp"; break; } if($url!=""){ header("HTTP/1.1 301 Moved Permanently"); header("Location: $url"); exit(); } ?> <html> <body> <? print "I have no url about [$shorturl]"; ?> </body> </html>あとは応用次第です。
0 件のコメント:
コメントを投稿