引越し前のドメインから、引越し先のURLへリダイレクトするときの、htaccess記述方法です。
htaccessの記述方法
サイト全体を新ドメインのトップへ転送
基本的な書き方
全てのページを新しいドメインに転送。
RewriteEngine on
RewriteRule ^(.*)$ http://新しいドメイン/ [R=301,L]
「(.*)」でとにかく何でもいい文字の連続。ようするにサイトのURL全て。
「[R=301]」でリダイレクト。URLを書き換える。
「[L]」で、条件にマッチしたらそこで終了する。
ドメイン名のみ変更
同じ構造の場合はこれ。
「$1」に値を渡すので、
http://古いドメイン/about.html → http://新しいドメイン/about.html のように使える。
RewriteEngine on
RewriteRule ^(.*)$ http://新しいドメイン/$1 [R=301,L]
「RewriteBase」は指定しなくてもよい。
指定することで、そのあと書く記述でディレクトリ名が省略できるというもの。
記述方法メモ
「permanent」と「301」は同じ意味。
下記の書き方もできるが、「RewriteRule〜」の方が条件をいろいろつけることができておすすめ。
※Mod-Rewriteをサポートしていない場合は下の記述じゃないと動かない。
Redirect permanent / http://新しいドメイン/
Redirect 301 / http://新しいドメイン/
※一時的な転送の場合は
Redirect 302 / http://新しいドメイン/
同じドメイン内で指定したとき、転送元を「/」で終わる記述にすると
/以下がすべて転送されるので、ループしてしまう。「/index.html」などにする必要がある。
Redirect 302 blog/index.html http://新しいドメイン/newblog/
「RewriteBase」は指定しなくてもよい。
指定することで、そのあとの記述でディレクトリ名が省略できるというもの。
正規表現について
以下の文字はメタ文字と呼ばれる特殊文字になる。
. ^ $ [ ] * + ? | ( )
普通に解釈したい場合は、最初に「\」をつける。(例:.)
「\」自体は「\」と記述する。
※言語環境によって、\(バックスラッシュ)は¥(円マーク)になる。
「^あん$」で 最初の文字は「あ」で始まり、最後の文字は「ん」で終わるという意味
「あん$」にすると、「abcあん」でも「123あん」でもOK。「あんabc」は「ん」で終わってないからだめ。
「^あん」にすると、「あんabc」でも「あん123」でもOK。「abcあん」は「あ」で始まってないからだめ。