先週の「同じURLで異なるHTMLを動的に配信する」ダイナミック・サービングをしているページで、スマホからPCページを見たい時の方法です。

PCページとスマホページが同一URLのダイナミック・サービングで、それぞれを行き来するには?

スマホのフッターなどに、「PCページを表示」などのボタンを設置します。クリックされることで、「PCページをリクエストした」というクッキーを持たせ、その時違うページを見てもPCページが表示されるだけではなく、後日また訪問した時にも、PCページが表示されていると便利だと思います。

「PCページを表示」の横にはもちろん「スマホページを表示」のボタンを設置し、戻れるようにしておき、以降は毎回スマホページが表示されます。

例えば、id=”switch_to_pc”の「PCページを表示」ボタンに、クリックでクッキーを持たせます。

最後の行は、リロードlocation.reload();ではなく、現在のURLを再読み込みにしました。これは、フッターなどページの頭以外で「PCページを表示」リンクを設置していた場合、リロードだとPCページの中途半端な位置まで勝手にスクロールされてしまうためです。

クッキーの設定ができたら、「同じURLで異なるHTMLを動的に配信する」ダイナミック・サービングのユーザーエージェントの判定で、スマホのアクセスでも、クッキーviewの値がpcの場合は、PCページを表示するようにします。

また、PCサイトのフッターには、スマホからのアクセスの時に、スマホ表示に戻れるボタンを設置しておきます。下のソース例では、トップページと、A、B、Cというディレクトリがスマホページに対応していて、ボタンを表示するようにしています。

これで、同一URLの中で、スマホ表示とPC表示を行き来できるようになりました。URLに不要なパラメータがつかないので、Google Analyticsでの集計にも悪影響がないと思います。

どれぐらいのスマホユーザーがPCサイト表示を求めているかは、ボタンのスクリプトにAnalyticsのアクションを含めて集計を取ると、サイト改善に役立つかもしれません。