metaタグによるURL転送パターン
一般的にはURLの転送を行う際には301リダイレクトを利用して、
恒久的な転送を行うのがベストであるとされています。
それでもサーバーやブログの仕様によっては301転送が利用できない場合もあります。
そんな時の代用策として利用するのがこのmetaタグによるURL転送です。
この転送方法はあくまでも代用策であって、
可能な限りは以下でご紹介しているいずれかの転送方法を採用されることをお勧めします。
metaタグによるURL転送パターン
metaタグによるURL転送パターンと言っても、
metaタグを利用したURL転送の方法は1つしかありません。
ただ、転送を開始するまでの時間を指定することができます。
これは転送前のページを一旦ユーザーに対して見せたうえで、
自動的に転送を行うような用途に利用されます。
「移転しました。5秒後に移転先ページに移ります」
といったパターンです。
ただ、metaタグによってURL転送時にサイトの評価を引き継ぐことができるか?
という点においては、公式のドキュメントを見つけることができなかったのですが、
一般的には、転送時間を0msとして設定することで、
サイト移転の代用とすることができると言われています。
metaタグを利用したURL転送では以下のように記述します。
1 |
<meta http-equiv="refresh" content="(待機時間);URL=(移転先URL)"> |
0 秒URL転送
0秒でURL転送を行う例です。
この場合、アクセスしたユーザーとしては301転送と変わらない画面遷移が行われ、
移転先のページがすぐに表示されることになります。
その為、移転元のページに「移転しました」などのメッセージを表示する必要さえありません。
実際のURL転送の例は以下で確認できます。
この例ではHTMLタグで(ファイル自体はphpファイルです)に対して以下のように記載しています。
<meta http-equiv="refresh" content="0;URL=http://fc2.freeblg.info/transfer/">
エラーが発生しました。後でもう一度やり直してください。 |
これによって、http://fc2.freeblg.info/transfer/meta0s/にアクセスすると、
http://fc2.freeblg.info/transfer/ へ自動的に転送されます。
curl -i -L http://fc2.freeblg.info/transfer/meta0s/
metaタグによるURL転送を行った場合には、
ステータスコードが3xxなどではなく、200(OK)が返されます。
その為、WebクローラなどがmetaタグによるURL転送を、
正しく移転として解釈するかどうかは、クローラ次第となってしまいます。
※一応はGooglebotでは多くの場合、URL移転が行われたと解釈はするようですが。
実際にcURLによってアクセスを行った際のヘッダ情報は以下のようになります。
エラーが発生しました。後でもう一度やり直してください。 |
cURLによってアクセスを行った場合には、
metaタグによるURL転送は「-L」オプションを指定した場合でも、
転送先に巡回されることはありません。
移転先のURLに遷移するかどうかも、ブラウザの動作に依存します。
この不確定な部分がある点がこのmetaタグ転送が推奨されない一因でもあります。
とは言え、他のURL転送手段が利用できない場合には、
この転送手段を利用するしかありませんので、
こうした転送を利用されるといいでしょう。
x 秒URL転送
通常はURL転送を行う際には0秒転送を利用されることが多いとは思いますが、
秒数を指定することで一定時間URL転送を待機させることができます。
実際のURL転送の例は以下で確認できます。
この例ではHTMLタグで(ファイル自体はphpファイルです)に対して以下のように記載しています。
<meta http-equiv="refresh" content="3;URL=http://fc2.freeblg.info/transfer/">
エラーが発生しました。後でもう一度やり直してください。 |
これによって、http://fc2.freeblg.info/transfer/meta3s/にアクセスすると、
http://fc2.freeblg.info/transfer/ へ3秒後に自動的に転送されます。
curl -i -L http://fc2.freeblg.info/transfer/meta3s/
metaタグによるURL転送を行った場合には、 設定した秒数に関わらずステータスコードが200(OK)が返されます。
エラーが発生しました。後でもう一度やり直してください。 |
さいごに
手軽に利用できるmetaタグによるURL転送ですが、
検索クローラが一応は0秒指定でURL転送を認識してくれるとされているとはいえ、
やはり、ステータスコードが200となってしまい、
できる限りは避けたいURL転送手段であることは確かです。
ですが、meta refreshタグをGoogleが認識しているとだけは公開されています。
Google がサポートしているメタ タグ – ウェブマスター ツール ヘルプ
Google がサポートしているメタタグ
Google では次のメタタグとその関連アイテムをサポートしています。
<meta http-equiv=”refresh” content=”…;url=…” /> 一定の時間が経過するとユーザーを新しい URL にリダイレクトします。簡単な形式のリダイレクト機能として使用される場合もあります。ただし、一部のブラウザではサポートされないため、ユーザーを混乱させる可能性があります。W3C では、このタグを使用しないよう推奨しています(英語)。Google では、サーバーサイドの 301 リダイレクトを使用することをおすすめしています。
Apache,Apache Hadoop,Apache Subversion,Hadoop,HDFS,HBase,Hive,Mahout,Pigは、
Apache Software Foundationの米国およびその他の国における登録商標または商標です。
ApacheソフトウェアはApache Software License (原文)および
Apache License, 2.0 (原文)に基づきOpen Source Initiativeに承認されライセンスされています。
公開日: