ページ移動

ページ移動

 サーバーを移動したり、Movable TypeやHAIKから、WordPressに移行するなど、ホームページのファイルの移動をしなければならないときには、301リダイレクトというのをやるといいようです。
 ただし、これをやるには、サーバー内の .htaccess というファイルを編集できる必要があります。

.htaccess 一括移動

 例えば、サーバーを移動したり、同一サーバー内でも、フォルダを移動したりするような場合には、同じファイル構成のままであれば、一括指定ができます。

# Redirect
Redirect permanent /pc/ https://www.neko01.com/pc/wp/

こんな感じです。1行目は無くても動くような気はしますがいかがなものでしょう。
 これを、エディタを使って、UTF-8の文字コードで、 .htaccess という名前で保存して、移動元のサーバーにアップロードします。元あったフォルダより上の階層の .htaccess に記述しても構いません。
 改行コードは、CR+LFでも構わないようです。
 前の移動元のフォルダ指定は、サーバーの、ドメインより下でいいようです。
 例えば、私のサーバーなら、

/public_html/www.neko01.com/pc/wp/

の様になっているので、「/pc/」から記述します。

.htaccess 個別移動

 Movable TypeやHAIKから、WordPressに移行するなどの場合には、ページ構成が全く変わってしまうので、ファイルを個別に移動設定しなければなりません。
 この場合は、私なら、Excelなどを使って、対照表を作ります。下のような感じです。

クリックすると拡大画像を表示します

 これで、6列目のF列のセルに、

=D3&RIGHT(B3,LEN(B3)-22)&" "&C3

の様な計算式を入力しています。マーカー部分の数字は、元のページのURLから、サーバーのドメイン以下の位置を切り出すための文字数です。

Redirect permanent /pc/syoyuuken/windows98-1.php https://www.neko01.com/pc/?page_id=9

の様な記述になればOKです。
 これで出来たF列を、「# Redirect」以下、ざっとコピーして、 .htaccess に貼り付けます。
 注意する点は、6行目の様に、元のURLはあるのに、新しいURLがないような場合に、自動でできたものをそのまま貼り付けてしまうと、「リダイレクトが繰り返し行われました。」というエラーになってしまいました。これは、移動先が指定されていないことになるので、当然と言えば当然です。
 この場合は、写真のように、計算式を削除しておきましょう。
 また、リダイレクトは、上から順に行われるので、先にフォルダを指定してしまった場合など、後からその中のファイルを指定しても、効果はありませんので、指定の順番は慎重に決めましょう。

リダイレクトがすぐに反映されない

 何度も .htaccess を書き直して、やり直していると、何をどう書き換えても、全くブラウザの表示が変わらないことがありました。
 これは、ブラウザかどこかに、キャッシュが働いているからで、指定を書き換えてもそう簡単にブラウザの表示が変わってはくれないというようなことがあるようです。
 ブラウザのキャッシュをクリアしても、まだ表示が変わらないこともあったので、cssなどの場合よりも、もっとどこかに強力なキャッシュが作用しているようです。

同じページをいくつも検索できる状態にしておかない

 同じ内容のページを、いくつもリンクされたままにしておくと、googleは、不正と捉えて、検索順位をひどく下げるようです。google adsenseなどでも、アカウントを削除されたというような話も耳にします。
 WordPressのように、内容がサーバーにそのまま残らないものは、意図的にやらなければそういうことは起こりませんが、Movable Typeの場合は、内容をそのままサーバーに吐き出してしまうので、所属カテゴリーを変えて、再構築を行った場合など、同じ内容のファイルが、いくつもリンクされたまま、サーバーに残ったままになってしまうことがあります。
 これを、一々サーバー上で、1つのやり残しもなくリダイレクトしていくのは、とっても大変で、無理があります。
 そのような場合も、上の301リダイレクトで設定してしまえば、割合簡単に、ペナルティーを回避できそうです。


 以下、上の様な、301移動の方法をまだ知らなかった大昔に書いた記事です。とりあえず、まだ、残しておきます。

ページ移動のメタタグを使ってはいけないと本には書いてあったが

 ページ移動のメタタグは、「かつて不法に乱用されたことがあって、それを使っていると、その時点で検索エンジンの対象とならない」という説明をした本があります。
 私がこのpcのホームページのサーバーを移動した際、ついうっかりこの記述を見落として、

<meta http-equiv="refresh" content="1;url=http://neko01.com/pc/">

  ※content= には指定ページへジャンプするまでの秒数を指定します。

というメタタグでページ移動してしまいました。
 その結果、移動したホームページが最初にgoogleに登録された際、そのページ移動のメタタグを使ったページを除いた、他のページはすべて登録されたのに、このメタタグを使ったページはなぜか、登録されませんでした。
 この結果から考えると、やはりこのメタタグがあるページは多少登録が遅れるというのは本当のようです。

かといってjavascriptもどうかなー

 それではということで、今度は以下のようなjavascriptにしてみました。その結果、上のメタタグでは登録がちょっと遅れる程度ですんでいたのに、こちらの方は2ヶ月以上経ってやっと登録されました。googleが更新に来てくれる回数がホームページによって違うこともあるので、これだけでは一概に言い切れませんが、このjavascriptというのもそれほど推奨できる代物でもないような気がします。
 今の私は、とりあえず上のページ移動のメタタグの方がまだましだったかなーと思っています。
 5月に移転した、車と登記のページはまた上のメタタグにしたので、どちらがよいのかもう少し実験してみます。

<head>

<meta http-equiv="content-script-type" content="text/javascript">
<script language="javascript"><!–
location.href = "https://www.neko01.com/pc/";
// –></script>

</head>

自動移動でも必ずリンクを貼っておく

 なお、ページ移動のメタタグを使う場合も、javascriptを使う場合も、自動で移動しないことがあるので、必ず 

<p align="center"><br>
下記のurlに移転しました<br>
<br>
<a href="https://www.neko01.com/pc/" target="_top">https://www.neko01.com/pc/</a>
<br>
自動でページが移動しない場合は上のurlをクリックしてください</p>

というようなリンクを本文に入れておきます。

タイトルとURLをコピーしました