URL短縮方法(2) .htaccessファイルを使ってURLを短くする方法
それでは、ウェブサーバのリダイレクト(自動転送)機能を活用することで、自分が所有する独自ドメインを使って短縮URLを作成したり利用したりする方法をご紹介いたします。.htaccessファイルを使って作成できるリダイレクト機能を利用して短縮URLを作る方法
ブラウザがウェブサーバに対してリクエストしたアクセス先を別のURLに変更する(転送する)ことを「リダイレクト」と言います。リダイレクトの方法は複数ありますが、.htaccessという特殊なファイルを使うことでも簡単にリダイレクトの設定ができます。
.htaccessファイルの中に、短縮されたURLを本来の長いURLへリダイレクトする記述を列挙しておけば、手動で短縮URLサービスを作成できることになります。
■おすすめのケース
短縮したURLを作る頻度が低いようなら、この方法が簡単です。.htaccessファイルを1つ用意するだけで済むので、事前に何もセットアップする必要がないからです。
■おすすめしないケース
短縮したURLを作る頻度が高いようなら、この方法は面倒です。短縮URLを作成しようとするたびに、テキストエディタ等で.htaccessファイルの中身を編集しなければならないからです。
■使えないケース
お使いのウェブサーバ側の制約で.htaccessファイルの設置が許可されていない場合は、このページでご紹介する方法は使えません。
※おすすめしないケースや、使えないケースに該当する場合は、次のページでご紹介する短縮URLの生成と転送を行えるフリーCGIを利用する方法を使って下さい。
【このページの目次】
短縮URLを列挙する.htaccessファイルの作り方
まず、.htaccessファイルそのものを作る必要があります。ファイル名がドット記号で始まっている点が特殊ですが、それ以外は普通のテキストファイルです。普段お使いのテキストエディタを使って、「.htaccess」というファイル名でファイルを保存して下さい。半角ドット記号「.」で始まる合計9文字がファイル名です。ファイル拡張子はありません。.htaccessというファイル名でテキストファイルを作り、その中に短縮URLのリダイレクト設定を列挙するだけ
保存したファイルは、ウェブサイトの最上階層(トップページのあるディレクトリ)にアップロードします。もし既に.htaccessファイルが存在する場合は、上書きしないよう注意して下さい。その場合は、既存のファイルの末尾に追記するだけで使えますから、新たな.htaccessファイルを用意する必要はありません。
■参考:その他の活用方法も含めた.htaccessファイルの作り方の総合解説
ウェブサーバの様々な設定ができる.htaccessファイル
この.htaccessファイルは、リダイレクトだけではなくユーザ認証やアクセス制限など、様々な用途に活用できる設定ファイルです。詳しい作り方や活用方法は、記事「.htaccessファイルの作成方法と設置方法」で解説しています。
もし.htaccessファイルをうまく作成できない場合は、この記事の2ページ目で解説している「.htaccessというファイル名で保存する」部分以降あたりを参考にして下さい。
これ以降の解説では、.htaccessファイルそのものは既に存在することを前提に説明しています。
リダイレクト機能を使って短縮URLを作る.htaccessの記述方法
.htaccessファイル内に以下の1行を記述すると、リダイレクト(自動転送)を設定できます。Redirect [アクセス元] [転送先]上記の1行は、[アクセス元]にアクセスされたら[転送先]へ自動転送しなさい、という指示です。この[アクセス元]に短縮されたURLを記述し、[転送先]に本来のURLを記述すれば、短縮URLサービスのような自動転送機能を用意できます。
例えば、以下のように記述します。[アクセス元]の方にはドメイン名は書きません。
Redirect /campaign2019 http://www.example.com/path/to/deep/page.html仮にウェブサイトのドメインが www.example.com なら、上記の記述によって以下のように動作します。
- ブラウザで http://www.example.com/campaign2019 にアクセスすると、
- http://www.example.com/path/to/deep/page.html へ自動転送される。
このリダイレクトの記述は、1行1件で必要なだけ列挙できます。
Redirect /campaign2019 http://www.example.com/path/to/deep/page.html Redirect /notice http://www.example.com/announce/for/visitors/notice.html Redirect /nishikita http://www.example.com/travel-guide/hyougo/nishinomiya/kitaguchi.html : : :この方法を使えば、自由な文字列を使って短縮URLが作れます。なお、転送先は異なるドメインのウェブサイトでも構いません。
■実在するファイルやディレクトリの名称を使わないよう注意
このリダイレクト機能を使って短縮URLを作る場合、実在するディレクトリ名やファイル名と同じ名称を使って短縮URLを作らないようご注意下さい。そのように記述してしまうと、実在するディレクトリやファイルにアクセスできなくなってしまいます。自動転送の方が優先されるためです。
■参考:リダイレクトの書き方
上記でご紹介したリダイレクトの書き方について詳しくは、記事「移転先へ自動移動(転送/リダイレクト)させる方法」でも解説しています。
リダイレクトを指示する際には「恒久的な移転」と「一時的な移転」という2種類の指定方法があります。本記事でこれまでにご紹介した書き方は、すべて「一時的な移転」という扱いになります。それらの書き方や動作の違いについても解説しています。また、.htaccessファイルを使わない転送方法についても紹介しています。ぜひ、併せてご参照下さい。
短縮URL(リダイレクトURL)であることを分かりやすくするには
リダイレクトされるURLであることを分かりやすくしたい場合は、短縮URL専用のサブドメインを使う方法がおすすめです。例えば www.example.com ドメインに対して r.example.com サブドメインを作成し、そこを短縮URL専用サブドメインとして使うなどです。例えば、- http://r.example.com/megane にアクセスされると、
- http://www.example.com/cgi/wiki/%E3%83%A1%E3%82%AC%E3%83%8D へ転送する
このような短縮URL専用のサブドメインを用意しているサイトとしては、例えば日経新聞社サイト(www.nikkei.com に対する s.nikkei.com)があります。
■サブドメインを用意できない場合でも
サブドメインを用意しなくても、例えばリダイレクト用の短縮URLにはすべて /r/ が含まれるようにしても良いでしょう。
Redirect /r/megane http://www.example.com/cgi/wiki/%E3%83%A1%E3%82%AC%E3%83%8D Redirect /r/nagato http://www.example.com/mt/sos/2009/08/14/yuki.html Redirect /r/nishikita http://www.example.com/travel-guide/hyougo/nishinomiya/kitaguchi.html上記の場合は、 http://www.example.com/r/megane にアクセスされた際に http://www.example.com/cgi/wiki/%E3%83%A1%E3%82%AC%E3%83%8D へ自動転送されます。