soft@appleple.com

【Apache】リダイレクト設定

mod_rewriteを使った転送方法だと、ページが移転したのに
サーチエンジンに登録されているURLには反映されないとい
う恐ろしい事態になります。

★ファイル単位の転送
 用途としては,テスト用のファイルに張ってもらったリンクを,正式なファイル名に変更してもらうのが億劫な場合とか.

httpd.confより抜粋
===================================
Redirect permanent /game/rensa_test01.html http://kamoland.com/game/rensa.html
===================================

http://kamoland.com/game/rensa_test01.html (廃止して存在しないけど外からリンクが張られているファイル)
 ↓
http://kamoland.com/game/rensa.html (存在するファイル)

permanentを指定しているので,ステータス301が返る.

他の値も指定できますが,詳しくはApacheのマニュアル(mod_alias)や RFC2616(HTTP/1.1)参照.


★ホスト(ドメイン)単位の転送
 これはまさに今回のように,ドメインが変わったけどディレクトリやファイル構成は変わっていない,という場合です。

httpd.confより抜粋
===================================
<VirtualHost kamoland.no-ip.com>
ServerName kamoland.no-ip.com
Redirect permanent / http://kamoland.com/
</VirtualHost>
===================================

http://kamoland.no-ip.com/[ディレクトリ名,ファイル名] (廃止する予定のドメイン)
 ↓
http://kamoland.com/[ディレクトリ名,ファイル名] (今後使うドメイン)
廃止予定ドメインへのrequestをVirtualHostで受けて,新しいドメインにリダイレクトします.

なので当然,廃止予定ドメインを,新しいドメインと同じIPアドレスを指す状態で残しておかないと機能しません。

(注意点)
下記の設定のようにすると、2行目のリダイレクトは有効になりません。/に設定してしまうと、それ以下の階層のリダイレクトは無視されます。すべて、http://europe.xxxx.com/に飛んでしまいます。

<VirtualHost 192.168.0.12:80>
ServerName www.xxxxx.cz
ServerAdmin info@xxxxx.co.jp
Redirect / http://europe.xxxx.com/
redirect permanent /01/ http://www.xxxx.co.jp/MH033/
</VirtualHost>

下記のように設定すると、http://www.xxxx.com/01/に
アクセスすると転送はかかりますが、http://www.xxxx.com/01
にアクセスすると転送されません。

##added in 2004.12.1
<VirtualHost 192.168.0.12:80>
ServerName www.xxxx.com
serverAlias xxxx.com
ServerAdmin info@xxxx.co.jp
DocumentRoot /home/xxxx.co.jp/htdocs
redirect permanent /01/ http://www.xxxx.co.jp/MH033/
</VirtualHost>

下記のように設置すると、両方とも反映します。
<VirtualHost 192.168.0.12:80>
ServerName www.xxxx.com
serverAlias xxxx.com
ServerAdmin info@xxxx.co.jp
DocumentRoot /home/xxxx.co.jp/htdocs
redirect permanent /01/ http://www.xxxx.co.jp/MH033/
</VirtualHost>

また、すべてのアクセスを転送したい場合には、Redirectでは
できないので、RedirectMatchを使用して転送します。

<VirtualHost 192.168.0.11:80>
ServerName xxx.net.cn
ServerAdmin info@xxx.co.jp
#Redirect / http://xxx.xxx.com/
RedirectMatch permanent .* http://www.xxx.co.jp/
</VirtualHost>

Last Update : 2004年12月01日 (水) 15:54