どうも、俺メモです。
実は、このサイトも先日ドメインをmymemo.mlからorememo.mlへ変更しました。
ほとんど変わってないじゃんと思われるかもしれませんが、この変更を1ページずつ適用するにはかなりの労力が必要です。
しかし、ここで紹介する方法をとれば、5分程度で全てのページについて、新しいドメインに書き換えが行われ、簡単に301でリダイレクトすることができます。
【結論】.htaccessに記載するコード
変更前のドメインで設定しているドキュメントルートに以下の記述した.htaccessファイルをファイルサーバーにアップロードします。
RewriteEngine On RewriteRule ^(.*)$ http://(変更後のドメイン)/$1 [R=301,L]
【補足説明】 .htaccessに記載するコードに関する解説
上記の方法を取れば目的達成ですが、少し補足説明します。
この方法は、全てのページについてステータスコード301( 恒久的な移動 )でリダイレクトしますので、SEO的にも有利になります。
以前紹介しましたがこのサイトでは、RewriteRuleを以下のように定義しています。
RewriteRule パターン 書換文字列 [フラグ]
パターン(正規表現)の検査対象文字列はURI(ドメイン直後のスラッシュを除いたドメイン以降の文字列)です。正規表現「.*」は全ての文字列(空文字も含む)にマッチするので、変更前のドメインにアクセスすればどんなURIでアクセスしようが、全てが正規表現にマッチし、URLが書き換えられます。
書換文字列には変更後のドメインを指定し、その後ろにURIを付け加えれば目的に合ったリダイレクトができます。
URIを付け加える方法は、後方参照「$」を使用します。後方参照「$」は、パターンの括弧で囲まれた文字列を書換文字列の中で参照することができます。「$」の直後の数字は、何番目の括弧内の文字列を参照するかを意味しています。「$1」は一つ目の括弧内の文字列、「$2」は二つ目の括弧内の文字列を表し、九つ目の括弧内の文字列まで参照することができます。「$10」は「一つ目の括弧内の文字列」+「0」という文字列で認識されます。
ここでは、括弧の中が「.*」で表現されていますので、全ての検査対象文字列、つまりURIが参照されます。検査対象文字列(URI)にはドメイン直後のスラッシュが入っていませんので、「$」の前にはスラッシュを入れる必要があります。
また、フラグには「R=301」を付けることで、ユーザー側にも書き換え後のURLが表示されるので、ドメインが変更しリダイレクトしたことを知らせることができます。
解説は以上ですが、ご質問等がございましたら、ご自由にコメント欄で書いて頂ければ回答致しますので、忌憚ないご意見・ご質問をお待ちしております。
コメント