プログラムブログ

PHP、Database、ネットワーク、サーバセキュリティ

Archive for 11 月, 2007

apacheでのリダイレクト方法

とあるサイトを運営しているのだが、コンテンツはそのままでドメイン名を変更したくなった。新しいドメインを取得してコンテンツをそこに移動すればとりあえずはドメイン名の変更ができるのだが、旧URLに対して外部からリンクが張られていたり、googleなど検索エンジンで旧URLがインデックス登録されていることを考えると、何か策が必要になる。そこで旧URLにアクセスされたときは新URLへリダイレクト(301)するということになる。

Apacheであれば旧URLのトップに 次の.htaccessを作成すればよい(mod_rewriteが対応していることを前提としている)。

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://新FQDN/$1 [R=301,L]

これで私の場合は旧URLから新URLへリダイレクトされるようになった。ちなみにコマンドラインで旧URLにアクセスしたときのレスポンスは次のようになった。

telnet 旧FQDN 80

GET / HTTP/1.1
Host: 旧FQDN

(ここからレスポンス)
HTTP/1.1 301 Moved Permanently
Date: 時刻
Server: Apache
Lcation: http://新URL/
Content-Length: 数字
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href=”http://新FQDN/”>here</a>.</p>
<hr>
<address>Apache Server at 旧ドメイン Port 80</address>
</body></html>
Connection closed by foreign host.

5 comments