Redirectディレクティブ:URLのリダイレクトを行う

Redirect ディレクティブは、古い URL から 新しい URL へのリダイレクトを実行します。ここでは Apache の Redirect ディレクティブの使い方について解説します。

(Last modified: )

Redirectディレクティブの使い方

Redirect ディレクティブは古い URL から新しい URL へのリダイレクトを行います。書式は次のとおりです。

Redirect [ステータス] URLパス URL

記述できる場所は httpd.conf, VirtualHost, Directory, .htaccess です。 .htaccess で設定する場合は AllowOverride FileInfo が設定されている必要があります。

古い URL を指定するための Redirect ディレクティブの URL パスは必ずドキュメントルートからの絶対パスで指定する必要があります。またステータスを省略した場合は 302 リダイレクトを行います。他の方式を使用する場合はスタータスへ HTTP スタータスコードを指定するか、次のいずれかの値を指定してください。

permanent  301
temp       302
seeother   303
gone       410

HTTP スタータスコードを直接指定する場合、 300 番台の値を指定する場合はリダイレクト先の URL を指定する必要があります。 400 番台の値を指定する場合は URL を指定しないでください。

例えばファイル単位で 301 リダイレクトを行う場合は次のように記述します。( 301 の部分は permanent と記述しても同じです)。

Redirect 301 /blog/hello.html http://www.example.jp/myblog/hey.html

この場合、 /blog/hello.html へのアクセスは http://www.example.jp/myblog/hey.html へリダイレクトされます。

ディレクトリ単位で 301 リダイレクトを行う場合は次のように記述します。

Redirect 301 /blog http://www.example.jp/myblog

この場合、 /blog に含まれるファイルやサブディレクトリへのアクセスは http://www.example.jp/myblog/ ディレクトリ内の同じファイル名やサブディレクトリへリダイレクトされます。

サイト単位で 301 リダイレクトを行う場合は次のように記述します。

Redirect 301 / http://www.example.jp

この場合、現在のサイトに含まれるすべてのアクセスは http://www.example.jp サイトの同じファイル名やディレクトリへリダイレクトされます。

では実際に試してみます。 http://www.example.com/ のドキュメントルートに設置した .htaccess に次のように記述しました。

Redirect 301 /blog http://www.example.jp/myblog

http://www.example.com/blog/hello.html へアクセスします。

Redirectディレクティブの使い方(1)

http://www.example.jp/myblog/hello.html へリダイレクトされました。

Redirectディレクティブの使い方(2)

-- --

Apache の Redirect ディレクティブの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。