wordpressをcloudfrontでキャッシュさせるときのデフォルトビヘイビア設定
デフォルトのキャッシュビヘイビア設定は以下の通り
・ビューワープロトコルポリシーはhttp -> httpsリダイレクトをするように「Redirect HTTP to HTTPS」を選択
・許可された HTTP メソッドは「GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE」を選択
・キャッシュキーとオリジンリクエストは、「Leagacy cache settings」を選択し、ヘッダー「Host, CloudFront-Forwarded-Proto」、クエリ文字列「すべて」、cookie「指定されたcookieを含める」→許可に「wordpress_logged_in*」を入力
ヘッダーは、Origin側にアクセス先のホストを通知するのに「Host」を使い、HTTPSの判定で「CloudFront-Forwarded-Proto」を使う。クエリ文字列は、検索やコメント、ページ遷移でつかうので含めないとうまく動かない場合はある。
- クエリパラメータでページ遷移してる場合は、「{ドメイン}/?p=1」でアクセスしてもキャッシュされるのは「{ドメイン}/」になるので、記事ページが表示されずに、記事をクリックしてもキャッシュされている「{ドメイン}/」が返却され、トップページが表示されることになる。
- SiteGuadeのプラグインを使っている場合は、クエリ文字列を含めないと、ログアウトしてもログイン状態が保持される状態になる。
・cookieは、ユーザが記事を表示するには必要ないが、管理画面にログインしているかをcookieの「wordpress_logged_in*」をみて判定しているので、含めないと管理画面にログインできなくなる。
・その他はデフォルトでOK
・管理画面(wp-admin)をキャッシュしないようにする