[2009-05-16-3]
は、今回の布石でした。決して、Web サーバと直接お話し
したいわけではありません。w
移転を読者にお知らせする、一番簡単な方法が [2006-05-28-1]
にも書い
たメタリフレッシュです。ただ、全ての *.html や CGI に仕込む必要があ
りますし、検索エンジンに伝わるかどうかは検索エンジンの実装に依存し
てしまいます(※[2009-05-17-2]
)。以降で述べる .htaccess の使用が許可
されていない時を除き、使うべきではないでしょう。
実は、HTTP ステータスコードには移転関係のコードもあります。
301: Moved Permanently
302: Found
303: See Other
307: Temporary Redirect
説明は「HTTPステータスコード
」に譲りますが、Web サー
バが 301 を返すようにすると、検索エンジンが適切に処理してくれます。
では、どうすれば Web サーバが 301 を返すようになるのでしょう?
例えば、http://src.example.jp/~masutaka/ から
http://dst.example.com/~masutaka/
に構成を変えずにそのまま移転した
い場合は、.htaccess に以下のように記載します。.htaccess は、
http://src.example.jp/~masutaka/.htaccess
に相当する場所に置きます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule (.*) http://dst.example.com/~masutaka/$1 [R=301,L]
</IfModule>
今回は試しに http://www8.atpages.jp/hotsuma/test.html
を
http://homepage2.nifty.com/chronicle/test.html
に飛ばす設定を仕込ん
でみました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(test\.html)$ http://homepage2.nifty.com/chronicle/$1 [R=301,L]
</IfModule>
では [2009-05-16-3]
の方法で、Web サーバが 301 を返しているのかを確
認してみましょう。
% telnet www8.atpages.jp 80
Trying 203.152.213.231...
Connected to www8.atpages.jp.
Escape character is '^]'.
GET /hotsuma/test.html HTTP/1.0 #<= 入力後、Enter×2回
HTTP/1.1 301 Moved Permanently #<= やった!!
(途中省略)
<H1>Moved Permanently</H1> #<= もちろん転送先も通知されます。
The document has moved <A HREF="http://homepage2.nifty.com/chronicle/test.html">here</A>.<P>
(以下省略)
Web サーバが、HTTP ステータスコード 301 を出力していることを確認出
来ました!!
参考情報: apache rewrite設定 - Webページ引越ししました - ふっくんのブログっぽいサイト
参考情報: mod_rewrite
参考情報: Apache : mod_rewriteリファレンス - dawgsdk.org
www8.atpages.jp 向け情報:
今回は説明しませんでしたが、本来は Redirect でも同じ設定が出来るよ
うです。でも、このサーバでは使えませんでした。Redirect は OFF になっ
ているようです。@pages のヘルプ
にはどこにも書いていませんでした…。
ちなみに Apache の機能としてみると、Redirect はデフォルト、Rewrite
は configure 時にオプションを指定すると使える機能です。