FC2ブログのmeta・JavaScript転送優先度チェック
FC2ブログからのURL転送をmetaタグやJavaScriptを用いて行う際に、
すべてのページからのmetaタグによる転送が行えるわけではありません。
ページタイプによっては実現ができないページも存在しています。
そのような場合に代替策として利用できるのがJavaScriptによる転送です。
可能な限りURL転送を漏らさない為にも併記することをお勧めします。
FC2ブログのmeta・JavaScript転送優先度チェック
サイトのURL転送では可能な限り.htaccessを利用した、
301転送を利用することが鉄則です。
しかし無料ブログなどの外部サービスを利用している場合には、
まず.htaccessを利用することはできません。
そんな場合の代替策として利用するのがmetaタグによる転送です。
さらに、metaタグによるURL転送が行えない場合の代替策として、
JavaScriptによるURL転送もあります。
無料ブログのサービスによってできることに制限があることと思います。
ここではFC2ブログでmetaとJavaScriptによるURL転送を併記した場合に、
どちらにURL転送が行われるのかをチェックしておきます。
予想は「常にmetaタグが優先される」と考えています。
URL転送の記述
ここではFC2ブログへURL転送を、以下のようにテンプレートに記述して確認します。
metaタグ転送例
1 |
<!--index_area--><meta <%tag_word>http-equiv="refresh" content="0;URL=http://fc2.freeblg.info/?tt=meta"><!--/index_area--> |
JavaScript転送例
1 2 3 4 5 6 7 8 9 |
<script type="text/javascript" language="javascript"> <!-- setTimeout("link()", 0); function link(){ strURL = "http://fc2.freeblg.info" + location.pathname + "?tt=js"; location.href = strURL; } // --> </script> |
上記のサンプルソースをテンプレートに併記します。
URL転送の確認
確認するページはトップページから行います。
確認する条件は以下のブラウザからそれぞれ行なっています。
OSはwindows: windows 7 Ultimate(64bit)上からの確認です。
- Chrome 39.0.2171.95 m
- IE 11.0.9600.17358
- Safari 5.1.7(7534.57.2)
- Firefox 34.0.5
- Opera 26.0.1656.60
FC2ブログのテンプレートの<head>~</head>間に、
metaタグとJavaScriptを直接記述して転送先を確認しました。
以下はmetaタグを先に記述した例です。(一覧上の「meta→js」パターンを示す)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%template_language>" lang="<%template_language>"> <head> <!--index_area--><meta <%tag_word>http-equiv="refresh" content="0;URL=http://fc2.freeblg.info/?tt=meta"><!--/index_area--> <script type="text/javascript" language="javascript"> <!-- setTimeout("link()", 0); function link(){ strURL = "http://fc2.freeblg.info" + location.pathname + "?tt=js"; location.href = strURL; } // --> </script> <meta ・・・続く |
結果は以下の通りです。
検証ブラウザと記述 | 記述順とブラウザアクセス | |||
---|---|---|---|---|
meta→js | js→meta | |||
js有効 | js無効 | js有効 | js無効 | |
Chrome | /?tt=js | /?tt=meta | /?tt=js | /?tt=meta |
IE | /?tt=js | /?tt=meta | /?tt=js | /?tt=meta |
Safari | /?tt=js | /?tt=meta | /?tt=js | /?tt=meta |
Firefox | /?tt=js | /?tt=meta | /?tt=js | /?tt=meta |
Opera | /?tt=js | /?tt=meta | /?tt=js | /?tt=meta |
結果として、記述の順序は全く問われることなく、
JavaScriptが有効である限りは、JavaScriptによるURL転送が行われました。
metaタグとJavaScriptによるURL転送を併記した際には、
JavaScriptによるURL転送が動作している可能性が高くなります。
極力metaタグによるURL転送を行いたい場合には注意が必要です。
metaタグによるURL転送を優先する
いろいろ試したのですが、metaタグの転送とJavaScriptの転送を、
併記してmetaタグを優先する方法は思いつきませんでした。
苦肉の策として、私のアクセスした結果として、
JavaScript側で、1500ms後に転送の指定を行うことで、
metaタグによる転送が優先された結果が得られましたが、
これでは本来の目的としての0秒転送にはなりません。
結果として、URLの転送をmetaタグ優先で行いたい場合には、
併記せず、metaタグのみを記述したほうがいいようです。
さいごに
metaタグによるURL転送が利用できる以上は、
JavaScriptによるURL転送は利用する必要性もないと言えます。
ただ、FC2ではmetaタグの挿入を阻止しようとする意図が、
テンプレートの編集画面で見られます。
ただ、<meta http-equiv=”refresh” content=”0; ・・・ と記述すると、
保存時にメタタグが削除されてしまいます。
その為、<meta <%tag_word>http-equiv=”refresh” content=”0; のように、
空文字を返してくるようなタグを間に挿入して、回避します。
こうした動作がいつまで認められるかは不明ですし、
念のためJavaScriptによる転送も併記しておきたかったのですが、
あまり現実的な対応とは言えないようです。
そんな経緯からもあって、FC2ブログの仕様が変更になる前に、
独自ドメインのレンタルサーバーなどに、
コンテンツを移転しておくことをお勧めします。
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に承認されライセンスされています。
FC2はFC2, Inc.の商標であり、FC2ブログはFC2, Inc.のサービス名称です。
FC2ロゴ、アイコンその他のマーク等はFC2, Inc.の商標であり、FC2, Inc.の著作物です。
公開日: