FC2ブログ独自変数 index_area はログオフ + モバイル環境では効かない

FC2ブログ独自変数 index_area はログオフ + モバイル環境では効かない

FC2ブログのあれこれ
2017/10/03 2
vanillaice (Akira)
vanillaice (Akira)
Glitch

結論。効かない でいいです。もう(笑)

FC2ブログの独自変数に <!--index_area--> <!--/index_area--> というのがあります。

インデックスエリア というのは トップページ種に分類されるページの一番最初のページのみ を指します。つまりみなさんのブログアドレスをクリックした時に最初に表示されるページです。

たくさんあるFC2ブログテンプレートの中には エンターページ というのを設けてあるものがありますよね。アクセス直後のページが表紙のようになっていて、日本語的に言う「ホームページ」っぽく演出してあります。これはインデックスエリア変数を用いて、最初の1ページ目だけ特別にあしらえてあるわけです。

ところがFC2ブログ上ではこのインデックスエリアが度々おかしな挙動を示すことが。何度か繰り返されている事象に ログオフ状態だとインデックスエリアが表示されない (index_area変数が効かない) といったもの。

ログオフ状態だと というのがミソ

ログオフ時の症状

エンターページ (index_area)
通常ページ (not_index_area)

表紙となるべきindex_area指定のページがあり、そこを経由してから通常の画面に入る構成ですが、何故かログオフ状態の場合には表紙を飛ばしていきなり通常ページにたどり着いてしまう、という症状です。検索するといろいろ出てきますので、この症状は何度か繰り返されていることがわかります(笑)
ですが検索で出て来る情報というのは 全てパソコン版を基準としています

現在パソコンから閲覧した際にはログオフ状態でもちゃんと表紙に着地しますので、本件不具合は「今のところ」解消されてます。今のところ(笑) またいつ発生するとも限らない不具合。

じゃあモバイル環境だとどうなるか 「基本的に」ログオフ状態ではindex_areaの効力が失われる その説明をする記事。むー (;`ー´)o

ダイナミックサービングが影響か

「基本的に」と書きましたが、じゃあ例外があるのか。あります

FC2ブログは現在のところ ダイナミックサービング というシステムを利用しています。昔のように「パソコンのことだけ考えてりゃオッケー」という時代ではもうありませんので、スマートフォンからのアクセスにどう対処するか ですよね。パソコンとスマホなんて極端に画面の大きさが違うわけですから、スマホでは スマホ専用版 を設けるか、一歩進んで レスポンシブデザイン を採用するかです。ということは、アクセスが パソコンからなのかスマホからなのかを判定 する必要があるということです。

パソコン版とスマホ版の切り替え時には

  • セパレートURL
  • ダイナミックサービング

という大別して2通りのやり方があります。前者はパソコン版のURLとスマホ版の URLを別にする という方法。旧Amebaがこの仕様でした。後者はパソコン・スマホの URLは共通 で、アクセス端末のユーザーエージェント(パソコン or スマホ)に応じてテンプレート種を変更する、というやり方です。FC2はこちらのダイナミックサービングです。現在のAmebaも旧来のセパレートからダイナミックサービングへ移行を済ませています。

テンプレート種(パソコン or スマホ)というのはここではとても重要なんですね。要はテンプレートを振り分けることイコール、各デバイス対応となるわけですから。

パソコン版 + スマホ版


「見せてください」

「見せてください」

「はいどうぞ」

「はいどうぞ」

レスポンシブデザイン


「見せてください」

「見せてください」

「はいどうぞ」

レスポンシブというのはこういうことをやってるわけです。閲覧者のお願い(リクエスト)に対し、同じ情報を返す(レスポンス)のがレスポンシブ。つまりhtmlとCSSのワンセットがパソコン・スマホで共通なのがレスポンシブ。ですが同じ情報を返すとは言え、内部では アクセス元デバイスがパソコンなのかモバイルなのか はしっかり見分けています。そしてインデックスエリアに影響が出るのが デバイスがモバイルと判定されている状態のとき です。

スマホブラウザの機能に「PC版リクエスト」というのがあります。これはどのブラウザにも付いているはず。何をするかというと、ユーザーエージェントの偽装 です。スマホからアクセスしているけれども、パソコンからアクセスしているように偽装する。するとレスポンスがパソコン判定として返ってきます。パソコン判定だとインデックスエリアが機能します なんじゃそら (;`ー´)

index_area変数というのはパソコン版でもスマホ版でも使えるわけなんですが、互換性が無いっぽい。それが不具合の根幹ではないかと思います。

パソコン版 + モバイル版 という形の併用者はモバイル版から「PC版表示」をクリックしてテンプレート変更をしても、インデックスエリアは機能しません。テンプレートにある「PC版表示」の切り替えというのはユーザーエージェントの偽装ではなく、単純にURLにパラメータを付けるだけの処理です。末尾に ?pc とつけるだけ。これがPC版を強制的に表示するパラメータですのでそれに従いますが、ユーザーエージェントはモバイルのままですのでインデックスエリアは効きません。末尾に ?index をつけると、これがインデックスエリアを強制的に呼び出すパラメータですので効きますが、そのためにはスマホ版のリンクを修正する必要が生じます。

レスポンシブデザインでテンプレートの一本化をしている利用者は、そもそも「PC ← → モバイル」という概念自体が不要ですので、つまり切り替え自体が不要。が、ユーザーエージェントは見分けていますので、初回アクセス時にモバイル判定を受けている場合にはインデックスエリアは効きません。こちらもパラメータを付けることで一部対処は可能ですが完璧なものにはなりえません。そしてさらにややこしいことが…。

FC2内部の「状態」が存在する

非常に不思議なんですが。そもそも「ログイン」「ログオフ」の別で状況が変わるってのが不思議。ここまで色々書いてますけれども、ログイン状態であればなんの問題もない んですよ(笑)
ユーザーエージェント判定がパソコンだろうがモバイルだろうが、ちゃんとインデックスエリアが機能します。ログオフ状態特有の問題なんです。

で、FC2の独特の「状態」なんですが、スマホから閲覧し、Aさんのページで「PC版表示」をクリックします。するとPC版テンプレートが表示されます。そのまま別の方であるBさんのページに移動します。するとBさんはスマホ版を設定しているにも関わらず、表示されるのはPC版です。

Aさんで切り替えた「状態」がそのまま引き継がれます。つまり ダイナミックサービングが効かない。… 何故
ユーザーエージェント変えてるっぽいような気もしますけど… 宇宙の謎より謎い (´・ェ・`)
ともかくこういう性質を持ってる、というのも踏まえ。

「ログオフ」状態であっても…

パスワード入室

スマホからパスワード限定のブログに入室したとします。

これがモバイルでのパスワード認証ページです。パソコン版に切り替えると

こういう表示になります。ログオフ状態であること・認証ページが①の状態であること、そしてキャッシュやクッキーは全てクリアされていることを確認した上でパスワード入室します。

入室直後の様子です。スマホ版を設定しているブログですので、ダイナミックサービングの働きでスマホ版が表示されています。そのまま なにもせずに(PC版切り替え等一切行わずに)、インデックスエリアで表紙をつけているブログへ移動します。すると

何故かインデックスエリアが機能(笑)
全く関係のないブログ同士 ですよ。リロードしてもやはり表紙として機能しています。別ブログでのパスワード入室無しでそのままインデックスエリア付きブログへ行くと…

辿り着くのはこのページ。何度リロードしてもインデックスエリアは出てきません。

や、だからなんでだよ((((笑)
ワケガワカラナイヨー ( ̄∀ ̄;)
結局スマートフォンに於けるインデックスエリアというのは 閲覧者の足取り次第で表示されたりされなかったりする んですよ。それアカンやつじゃない?ねぇ?どーなの?

この件を以前も堀リ下げてというか、FC2スタッフさんの食い下がってみたのだけれど。最終的には 不具合ではなく仕様です。 って言われちゃったぁ〜〜ん (´・ω・`)
「仕様です」って言い切られたらこちとらそれ以上何もできねー。

まとめ

謎深きモバイル環境下のインデックスエリア。できればFC2の方で見極めて頂きたいところではありますが、すぐには無理だろう (´・ω・`)
そもそもなんか捨て鉢な感じだったし… (笑)

というわけで、最新テンプレートの「Axis」もそうなんですが、閲覧者のログイン/ オフ状態や足取りの有無によっては 表紙ページが見られないかもしれない というのを頭に置いて頂きたいんですね (´・ω・`)
これ製作者側ではどうにもコントロールできないというか。せめてナビの HOME のリンクを <%url>?index にしてパラメータで表示させるとか、そのぐらいしか。

ただし検索で来られたログオフ閲覧者さんが最初に目にするページを確実にインデックスエリアにすることはできません。検索結果に載っているURLを操作することはできないもので。他にも

  • モバイル環境からのアクセスを強制偽装 --- リダイレクトループ
  • スマホ版html, CSSにPC版と全く同一のものを設定 --- ローディングがめっちゃ遅い, not_index_areaにもindex_area限定内容が表示される

など効果がありませんでした。本件について何かご存知の方おられましたら教えて頂けると助かりますー (´・ω・`)

 2

There are no comments yet.
-
管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

2017/10/09 (Mon) 17:43
Akira
To 記事の書き方の件 内緒さん

こんばんは ( ゚Д゚)ノ

はい。そうなんです。
見出しがバラけているので修正しようと思いまして、事のついでに直したれ、と (´・ω・`)
目次は私がコードを組んだわけではないのと、今現在は修正作業をぼちぼち亀の足取りで行っているところですので、落ち着いたらご紹介するかもしれません ^^;

2017/10/09 (Mon) 22:21

テンプレートに関するご質問・不具合のご報告の際はご自身のブログアドレス記載必須です。
ご質問の前に 必ずお読みください
テンプレートに関するご質問時のお願い

必ず該当テンプレートの専用記事にお願いします。無関係な記事・別のテンプレート専用記事でのコメントはお控えください。
テンプレートカテゴリ
テンプレート一覧

FC2ブログのあれこれ