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 //www.example.jp/myblog/hey.html
この場合、 /blog/hello.html へのアクセスは //www.example.jp/myblog/hey.html へリダイレクトされます。
ディレクトリ単位で 301 リダイレクトを行う場合は次のように記述します。
Redirect 301 /blog //www.example.jp/myblog
この場合、 /blog に含まれるファイルやサブディレクトリへのアクセスは //www.example.jp/myblog/ ディレクトリ内の同じファイル名やサブディレクトリへリダイレクトされます。
サイト単位で 301 リダイレクトを行う場合は次のように記述します。
Redirect 301 / //www.example.jp
この場合、現在のサイトに含まれるすべてのアクセスは //www.example.jp サイトの同じファイル名やディレクトリへリダイレクトされます。
では実際に試してみます。 //www.example.com/ のドキュメントルートに設置した .htaccess に次のように記述しました。
Redirect 301 /blog //www.example.jp/myblog
//www.example.com/blog/hello.html へアクセスします。
//www.example.jp/myblog/hello.html へリダイレクトされました。
-- --
Apache の Redirect ディレクティブの使い方について解説しました。
( Written by Tatsuo Ikura )

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