WordPressの吐き出すコンテンツをCDNにキャッシュさせて負荷分散させているのだが、スマフォ用のページを吐き出すプラグインを使うこととなった。
そのままプラグインを使っても、CDNを通したコンテンツはキャッシュされた時のコンテンツで固定されるので、全く機能しない。
以下の制限を許容してもらって、最小限の修正で解決させるようにした。
- スマフォのアクセスはTopページからのみと想定。PC用のコンテンツ直リンはPCサイトが表示されるのを許容する。
- スマートフォンのユーザ見えのアクセスは/sp/がURLに入るようになる。(元々のプラグインはPCとSPでURLが一緒)
以下の修正を行った。
- .htaccessで”sp/”があったら”sp/”を取っ払う
- TopページのJavascriptで、UAがスマフォなら/sp/にリダイレクトするスクリプトを埋め込む
- 絶対パスのリンクを相対パスにする。↓参考。
http://2inc.org/blog/blog/1198/
これで、CDNにはスマフォ用のコンテンツが/sp/以下のコンテンツとして登録され、PCはこれまで通り変わらない使い勝手のまま、スマフォは/sp/以下でコンテンツを見ることになる。
Tags: CDN, Ktai-Style, Word Press, WPTouch
はじめまして!
とても参考になる記事をありがとうございます(*′∇`*)
分からないことがあったので、下記お手すきの時に教えてください。
■「.htaccessで”sp/”があったら”sp/”を取っ払う」の処理に関して、具体的に教えていただくことは可能でしょうか?
オリジン側で/sp/を取り除いたディレクトリのコンテンツをリクエストするためでしょうか?
■「PC用のコンテンツ直リンはPCサイトが表示されるのを許容する。」
これについて、UA判別のスクリプトをTOPページだけではなく、全てのページに埋め込んだ場合には、全てのページでsp用コンテンツを表示させることは可能でしょうか?
どうぞよろしくお願いします。
まさか、こんな過疎ブログにコメントが付くとはw
To:えりーぬさん
> 「.htaccessで”sp/”があったら”sp/”を取っ払う」の処理に関して、具体的に教えていただくことは可能でしょうか?
環境にもよりますが、こんな感じでしょうか。
RewriteRule /sp(.*) $1
> オリジン側で/sp/を取り除いたディレクトリのコンテンツをリクエストするためでしょうか?
その通りです。
> これについて、UA判別のスクリプトをTOPページだけではなく、全てのページに埋め込んだ場合には、全てのページでsp用コンテンツを表示させることは可能でしょうか?
できますよ。
私は都合で極力修正量や影響範囲を減らないといけなかったため、Topだけって縛りが入りましたが、全ページを対象にするなら、テンプレートの中に仕込めばよろしいかと思います。
[…] 先日書いたWPTouchやKtaiStyleによる画面切り替えをCDNに対応させるが、時間がなくて実験せず多分行けるだろうで 記事を書いて、思いっきりダメだったので訂正エントリー。 ※脳内シミュ […]