ホームページのリダイレクト
ホームページのリダイレクトには、主に2種類あります。

一番簡単なのは、html文のMETAタグを記述することです。

(1)METAタグを使う

html文のhead部にrefreshを使ったメタタグを記述します。

<meta http-equiv="refresh" content="0;url=http://www.fulldigit.net/">

contentの値を0(ゼロ)にすることで、urlに書かれたページにすぐに遷移します。
※contentの値は、移動するまでの秒数。

だたこの方法は、ページ数が少なければいいのですが、サイト全体を移動した場合などはhtmlファイル分書き換えないといけなくなるので、大変です。ま た、METAタグを使った方法では、METAタグを埋め込んだ転送元のhtmlと転送先のhtmlの2つのページを読むことになるため、無駄なアクセスは 増えますし、アクセス解析をおこなっている場合は、転送元の情報を省いたりしなくてはなりません。 加えて最近の検索エンジンではリダイレクトの間隔が短 いと、そのサイトのコンテンツとは認めないことがよくあるのです。

そこで、apacheの場合は.htaccessを使うことによって、余計なファイルアクセスを行なわずリダイレクトすることができるようになります。



(2).htaccessを使う

.htaccessを使ったリダイレクトは、転送元のhtmlファイルがあるわけではないので、瞬時にリダイレクトが行なわれ、アクセスログに残ることも ありません。実際のページを経由していないわけですから、ブラウザの戻るボタンで戻っても、大元のページに戻ることができます。(METAタグ refreshでは、大元のページに戻ることができないことがよくあります。)

.htaccessを書き込む権限があれば、.htaccessに下記の行を記述します。


Redirect [オプション] [アクセスされるパス] [転送先url]

例えば
Redirect permanent /~user/ http://www.fulldigit.net/

[アクセスされるパス]はドキュメントルートからのパスを記述します。
[転送先url]は文字通り転送先のURLですが、一番注意しないといけないのは、最初にアクセスされたサイトと転送先のドメインが同じ場合、[アクセス されるパス]と[転送先url]の記述の方法によっては同じとなってしまって無限ループを起こす可能性があるということです。 これは本当に注意して下さ い。無限ループを起こすと簡単にサーバをダウンさせることになってしまいます。くれぐれもご注意を..。


転送の動作は次のように行なわれます。
上記の例を使って説明すると、仮にアクセスされたページURLが、http://www.aaa.com/~user/だったとすると、下記のように記述した場合はhttp://www.seadigit.net/に瞬時に転送されることになります。

Redirect permanent /~user/ http://www.fulldigit.net/

また、http://www.aaa.com/~user/index.html というようにファイル名やディレクトリ名が付いた場合も、転送URLでは、http://www.fulldigit.net/index.html と い うように、同じファイル名・ディレクトリ名を付けて転送されるため、コンテンツをドメインのサーバにそのまま移動させた場合などは、簡単にリダイレクトが できることになります。


なお、オプションは下記の意味があります。
permanent
 永久に移動したということを示します。ブラウザにはステータス (301)を返します。
temp
 コンテンツが一時的に移動したことを示します。ブラウザにはステータス(302) を返します。

他にもオプションはありますが、よく使うのは上記の2つだと思います。

Redirectに関する詳しい説明は、下記のページを参照して下さい。
http://httpd.apache.org/docs/2.0/ja/mod/mod_alias.html#redirect



Joomla!移行時のリダイレクト

さ て、このサイトもJoomla!(CMS)に移行したわけですが、「 Redirect permanent 」では不適切だと気が付きました。 Joomla!はphpのクエリ(?item=~という表記)で動いていますが、これではSEO対策にならないので、 Rerightエンジンを使って、ディレクトリパスに変更しているわけです。

 http://www.fulldigit.net/ index2.php?option=com_content&task=view&id=41&Itemid=28
       ↓
 http://www.fulldigit.net/content/view/41/28/

 
つまり、上記の場合、「 /content/view/41/28/ 」といったディレクトリは見かけ上だけで、実際には存在しないわけです。

さて、千ページ説明した「 Redirect permanent 」は、転送先URLにも元のファイルへのパスを補完してURLを作成してアクセスしてくれる便利な機能ですが、Joomla!では問題があります。

例えば
 http://www.fulldigit.net/debian/rerite.html
      ↓
 http://www.fulldigit.net/content/view/41/28/

 
としたいわけですが、

 Redirect permanent /debian/ /content/view/41/28/


と記述してしまうと、

 http://www.fulldigit.net/content/view/41/28/rerite.html


といったURLになってアクセスされてしまいます。
ディレクトリパスは存在しないため、Rerightエンジンで変更されたパスにファイルが補完されてしまうと、思った通りのページに移動しないケースが発生してしまいます。

そうならないためには、「 Redirect permanent 」ではなく、「 RedirectMatch permanent 」を使います。
「 RedirectMatch permanent 」は、正規表現を使って、ファイル名補完なしにリダイレクトを行なうことができます。

なお、このサイトでは次のように設定しました。

RedirectMatch permanent ^/index\.html$ http://www.fulldigit.net/index.php
RedirectMatch permanent (.*)/LINUX/(.*)\.html$ http://www.fulldigit.net/content/category/2/3/9/
RedirectMatch permanent (.*)/site/(.*)\.html$ http://www.fulldigit.net/content/category/1/1/5/
RedirectMatch permanent (.*)/se/(.*)\.html$ http://www.fulldigit.net/content/category/3/9/27/
RedirectMatch permanent (.*)/debian/(.*)\.html$ http://www.fulldigit.net/content/category/2/6/10/

 
上記の設定では、あるディレクトリ(例えば、[/LINUX/]の配下にある、拡張子[.html]を持っているファイルが、すべて、右辺に設定したURLにリダイレクトする設定になります。
もちろん、この設定ではファイル名などが補完されることはありません。

CMSへの移行の際にお試し下さい。