あるサイトのリニューアル案件で、サイト(ドメイン)にそれなりに歴史がある場合、「リニューアル作業完了しました!」となっても、キチンと古いページを見えなくして、新しいページを表示させないとまだ「古いページが表示されている」という問い合わせが来ます。
ちょっと待ってれば、更新頻度の高い新しいサイトに入れ替わるんでしょうが、サイトをリニューアルした事をGoogleに伝えなければいけません。その時に「.htaccess」に設定した記述を今回は備忘録。
例えば、古いサイトのお問い合わせページのURLが「http://hoge.com/contact.html」で仮に新しいサイトをWordpressで組んだ時にお問い合わせページのURLが「http://hoge.com/contact」となるとします。
ですが、Google検索結果には当然古い歴史のあるURLを優先的に表示させます。
リニューアル前の過去のサイトは、「コレは古いサイトなんで、コッチが新しいサイトですよ」ってGoogleに伝える必要があります、その時に使うのが301リダイレクトです。
「.htaccess」のファイルは前にピリオドがついているため、不可視ファイルとなっているので・・・
ローカル内で作業する場合ならPCの設定で不可視ファイルを見えるように。
FTPソフト内ならアプリ内で不可視ファイルが見える設定にする必要があります。
旧サイトからドメイン変更でマルっとURLが変わっちゃう場合は以下の記述えを使います。
上記は「http://hoge.com」の場合
RewriteEngine on RewriteRule (.*) http://hoge.com/$1 [R=301,L]
特定のディレクトリを別の新サイトURLへリダイレクトかける場合は以下の記述
旧サイト:http://hoge.com/old
新サイト:http://hogehoge.com/
RewriteEngine On RewriteRule ^old(.*)$ http://hogehoge.com/$1 [R=301,L]
旧ページがページ数が10〜20の簡単な場合はこの記述で十分かと思います。「hoge.com」でGoogle検索して、表示されてるページを全部リダイレクトかけちゃえばOKです。
RewriteRule ^contact.html$ http://hoge.com/contact.html[R=301,L]
あと、シンプルにこんな書き方もあるようです。
Redirect 301 contact.html http://hoge.com/contact.html
public_html内のディレクトリ階層が変わった場合の話。
例えば、「http://hoge.com/old/」が「http://hoge.com/new/」と変更した場合の記述方法は以下
Redirect permanent /old/ http://hoge.com/new/
wwwありなしは、人からするとあんまり関係ないんですが、Googleからすると、別のページと認識されるそうで、重複コンテンツ扱いを受けて、順位が下る場合があります。設定しておくに越したことはありません。
【WWWありの場合】
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^hoge\.com$ RewriteRule ^(.*)$ http://www.hoge.com/$1 [R=301,L]
【WWWなしの場合】
Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.hoge\.com$ RewriteRule ^(.*)$ http://hoge.com/$1 [R=301,L]
記述の気にするところは、ドメインのピリオドの前にバックスラッシュ(\)がつくことですかね?
最近プログラマーさんとのタッグを組んだ仕事もありますが、一人でサイト構築までやらせていただける案件も増えてきたので、最終チェックとして、キチンと把握して設定しときたいもんです。
せっかくサイトリニューアルしても、古いページばかり表示されてたら、何のためにリニューアルしたのか訳わかりませんので・・・。今回は以上ですm(_ _)m