SEO的目的であるとか、欲しかったのが取れたとか言う理由でWebのドメインを移動することがある。
しかし、単純に移動させてしまうと、それまで使っていたリンクであるとか、サーチエンジンの順位であるとかでマイナスが発生してしまう。
そんなときに便利なのがApacheのmod_rewriteである。
.htaccessファイルで
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(blog\.hogehoge\.piyo)(:80)? [NC]
RewriteRule ^(.*)$ http://serversmanvps.xn--ockc3f5a.com/$1 [R=301,L]
</IfModule>
みたいに、旧サイトに設置しておくと、http://blog.hogehoge.piyoに来たリクエストをHTTP応答コード301(恒久的移動)を添えてhttp://serversmanvps.xn--ockc3f5a.com/に飛ばしてくれる。
Ruleの(.*)(全部引っかかる正規表現)とアドレスの最後にある$1(最初にヒットした部分をくっつける)によって、旧サイトの/page/2とかの部分をコピーしてくっつけられるので、従来のリンクはそのまま新サイトへのリンクとして扱われる。
301コードを掲示しておくと、検索エンジンが移動したことを認識してくれるので、そういった部分のマイナスが押さえられる。
WordPressサイトの.htaccessには
# BEGIN WordPress
# END WordPress
でくくられた部分にmod_rewriteの設定があるが、この範囲はWordpressの設定を変えると書き換えられてしまうので、このコメントの外に書き足す。
(440)