URL短縮方法(3) 短縮URLを生成して転送できるフリーCGIを使う方法
リダイレクト(自動転送)機能をブラウザ上で簡単に設定できるフリーCGIは多数あります。それらを活用して、短いURLを本来のURLへ転送するよう設定すれば、簡単に短縮URLサービスを自サイト上に用意できます。ここでは、短縮URLの生成機能とリダイレクト機能を持つ「Fumy Tiny URL Redirector」という拙作のフリーCGIの使い方を例にして説明します。短縮URLを生成できるフリーCGI
【このページの目次】
短縮URL生成・リダイレクトCGIを自サイトに設置する方法
まずは、配布サイト「Fumy Tiny URL Redirector」にアクセスして必要なファイル一式をダウンロードして下さい。ページ上部に見える緑色のダウンロードボタンを押すと、本稿執筆時点では「go.zip」という名称で13.5KBのZIPファイルがダウンロードできます。適当なフォルダに展開すると、下図のような4つのファイルが出てきます。ZIPを展開すると4ファイルが出てくる
これら4ファイルの内訳は以下の通りです。
- 必須:CGI本体である「r.cgi」
- 必須:データファイルである「redirects.csv」
- 必要に応じて使う「.htaccess」
- 説明書の「README.TXT」
これらのうち、必須なファイルは「r.cgi」と「redirects.csv」の2つのみです。しかし、使えるなら「.htaccess」も使う方が、より短いURLにできます。
■CGIソース内の設定を変更
まずは、CGI本体である「r.cgi」ファイルをテキストエディタで開きます。すると、22行目あたり以降に下図のような設定箇所があります。ここで必要な設定を記述して下さい。特に「登録鍵(=登録用のパスワード)」欄に記述されている文字列は、必ず変更して下さい。それ以外の項目は、書き換えなくても構いません。
登録用のパスワードをデフォルト設定のままで設置してしまうと、CGIにアクセスしさえすれば誰でも短縮URLを作れてしまう上、既存の短縮URLの転送先を変更したり削除したりすることもできてしまいますので注意して下さい。
CGI本体の「r.cgi」と、データファイル「redirects.csv」の少なくとも2つを自サイトにアップロードして下さい。「.htaccess」は使えるなら使う方が望ましいので、できるだけそれも含めて3ファイルをアップロードしましょう。その際、パーミッション(アクセス権)は以下のように変更します。
- r.cgi には実行権を付加して「755」や「705」などにします。ウェブサーバでSuEXECという仕組みが使われている場合は「700」にします。
- redirects.csv には書込権を付加して「666」や「606」などにします。SuEXEC環境では「600」にします。
- .htaccess のパーミッションは、特に変更不要で「644」や「604」などになっていれば問題ありません。
FTPソフトなどで各ファイルのアクセス権を設定 (CGI本体は一般的には755、SuEXEC環境なら700に設定)
アップロード先はどこでも構いませんが、URLを短くすることが目的なので浅い階層に置くのが良いでしょう。ウェブサイトのトップページと同じ場所に置いても構いません。
フリーCGIを使って短縮URLを作る方法
これ以降は、このCGIを http://www.example.com/go/r.cgi という場所にアップロードした場合を例にして説明します。■短縮URLの生成
長いURLを登録して短縮URLを生成する機能を使うには、お使いのブラウザでこのCGIにパラメータなしでアクセスします。下記のようなURLです。
http://www.example.com/go/r.cgiもし、付属の.htaccessファイルを使った場合は、以下のURLでもアクセスできます。
http://www.example.com/go/すると、下図のような画面が表示されます。もしここで何らかのエラーが出る場合は、CGIが正しくアップロードされていないか、正しく設定されていません。「r.cgi」ファイルの1行目にある「#! /usr/bin/perl」の記述を、お使いのサーバ用に合わせて変更しなければならばい場合もあります。それでも「Internal Server Error」が出る場合は、一旦「.htaccess」ファイルを削除してみて下さい。
この画面から短縮URLを生成したり登録したりできます。上図のように、
- 「転送キーワード」欄(黄色矢印)には、短縮URL用の文字列を入力します(※)。
- 「転送先URL」欄(青色矢印)には、元の長いURLを入力します。
- 「登録鍵」欄(紫色矢印)には、CGI本体「r.cgi」のソース内に記述したパスワードを入力します。
※「転送キーワード」欄を空のままで登録すれば、ランダムな文字列が自動生成されます。しかし、分かりやすさを重視するなら、自分で文字列を入力した方が良いでしょう。
■登録した短縮URLを使うには
上記のように「allabout」という転送キーワードで短縮URLを登録した場合は、下記のようなURLでリダイレクトできます。
http://www.example.com/go/r.cgi?allabout付属の.htaccessファイルを使った場合は(※)、下記のようなURLでもリダイレクトできます。この方が短くて望ましいでしょう。
http://www.example.com/go/?allaboutここでは「?」記号が必須なので注意して下さい。とはいえ、この「?」記号すらも不要にした方が短縮URLサービスらしいでしょう。次にその方法を解説します。
※.htaccessが使えないサーバでも、CGI本体である「r.cgi」のファイル名を「index.cgi」に変更すると、CGI名を省略したURLでアクセスできる場合もあります。
「?」記号を不要にして短縮URLサービスらしく運営する方法
.htaccessファイルの中でRewriteモジュールが使用可能なサーバをお使いなら、「?」記号を使わない短縮URLも使えるように設定できます。その方法は、r.cgiファイルを置いたディレクトリにある.htaccessファイル内に、以下の4行を追記するだけです。RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9a-zA-Z]+)$ r.cgi?$1 [L]上記の4行は、実在しないファイルやディレクトリへアクセスされた場合に、URLの末尾にある英数字を r.cgi へのクエリ文字列に変換する指示です。これらの記述によって、ブラウザからの下記(A)のようなアクセスが(B)のように変換されるため、「?」記号を使わずにCGIへ情報を渡せるようになります。
(A) http://www.example.com/go/orange
(B) http://www.example.com/go/r.cgi?orange
このように.htaccessを書いておくと、「?」記号すら不要な短縮URLが使えて便利でしょう。
短縮URL作成方法おすすめ3選
今回は、長いURLを短くする方法として、(1)無料で提供されている短縮URL生成サービスを利用する方法、(2)自サイト内に.htaccessファイルを作ってリダイレクト機能を利用する方法、(3)フリーCGIを使って短縮URLを作成する方法の3通りをご紹介いたしました。長いURLを文字数制限のある場所に書き込む機会が多い場合などに、ぜひ活用してみて下さい。【関連記事】