2017年2月14日火曜日

【備忘録】JetPackプラグインの「タイルギャラリー」の落とし穴に注意!

WordPress の JetPackプラグイン内にある「タイルギャラリー」について、ちょっと特殊な問題が起こって解決したのでメモっておきます。

制限サイトではギャラリーが表示できない


制限サイトとは、IPアドレス制限やパスワード制限されたサイトのことです。
よく準備中のサイトって一部メンバーのみチェックのために、そういった設定にしていることはありませんか。

どうやらその場合には、タイルギャラリーのギャラリーデータの画像が表示できないようです。このタイルギャラリーは、WordPress.com の CDNを通じて提供されており、画像としては ***.wp.com で生成された画像を表示することになります。制限されたサイトでは、生成された画像が GETできない(400エラー)となります。制限を解除して、キャッシュ系プラグインやシステムがあるなら、キャッシュをクリアすると問題なくでます。

以上から、WordPress.com 側がサイトの画像から直接データを取得してコンバートして CDN として提供しているのじゃないかなーと思います。なので、サイトへのアクセスが制限されていると画像が取得できなくて生成できないのかなぁと。

ただ一度サイトのアクセス制限を解除してタイルギャラリーができあがれば、再度サイトのアクセス制限をしてもギャラリーは残ります。

でも毎回やるの面倒だよ〜


その場合には、WordPress.com からのサイトへのアクセスを許可すればいけました。IPアドレスの細かい範囲は分からないので、パスワード保護されたWordPressを WordPress.com で管理するためには で以前調べた Automattic社の IPアドレス群をまるごと許可しました。
  • 192.0.64.0/18
ですね。実際に CDNは、 i0.wp.com とか i1.wp.com とかいくつかあるようで、それらはカバーしてそうです。BASIC認証をしているなら

Nginx
     satisfy any;
     auth_basic  "Hogehoge---";
     auth_basic_user_file /hogegegege/.htpasswd;
     allow 192.0.64.0/18;

Apache
   Order Deny,Allow
   Deny from all
   Allow from 192.0.64.0/18;
   AutoType Basic
   AutoUserFile  /hogegege/.htpasswd
   require valid-user
   Satisfy Any;

のように、Satisfy Any で OR条件にした上で、IPアドレス許可を追加すればいけまーす。

2017年2月14日 @kimipooh

0 件のコメント:

コメントを投稿