えっと、テストがてら、WordPress の設定メモ。
動作がかなり重いので、キャッシュプラグイン「WP Super Cache」を入れました。
ところが、なぜかIEだと動作しない。調べたところ、
・パーマリンク設定をすると、固定ページのURLは http://…/<投稿スラッグ> 決めうちになる。
・投稿スラッグ(ページタイトル)に日本語が入っていると、UTF-8でURIエンコードしたURL になる。
・WP Super Cache は、エンコードされたURL を元にキャッシュファイル名(静的ページ)を生成する
・WP Super Cache では、キャッシュされたファイルは WordPress(PHP)を通さずに、Apache から直接アクセスする
・URIエンコードが16進数小文字(0-9a-f)の場合は、Apache は、URIエンコードされたままのファイルにアクセスするが、
・16進数大文字 (0-9A-F)の場合は、ApacheはURIをデコードしたファイルにアクセスする
・FirefoxでUTF-8なURLは16進小文字だが,IEは16進大文字になる
・その結果、WP Super Cache が生成した(URIエンコードされたままのファイル名な)静的ページには、IEでアクセスできないことになる
という流れです。
WP Super Cache を改造して、URIデコードしたキャッシュファイルも生成するようにしました。
これで、IEからでもキャッシュされているように見えます。
キャッシュの全削除でURIデコードされたファイルも消えることを確認しましたが、
expire期間を過ぎたキャッシュが消えるかどうかは未確認。