どもです。
暫く前から、ブログの画像が表示できなくなっていました。
簡単に調べてみても原因が特定できず、どのプラグインを無効化しても解決しなかったので放置していたのですが、さすがに対応しなければと重い腰をよっこいせ。
現象としては、ブログ上の画像が表示できない。
メディアライブラリでの表示も不可。
画像URLを直接打ち込むと500エラーになる。
で、改めて調べてみると、こういった問題の原因は確定htaccessの模様。
URL直打ちで500エラーになるなら、htaccessしかないと。そりゃそうだ。
とはいえ、当然だが自分で直近htaccessの編集なんかを行っていれば、画像が表示できなくなった時点で真っ先に思い当たる。
何者かが自動でhtaccessを書き換えたのだ。
で、結論としては大手プラグインのWP-Optimize。此奴がhtaccess自動生成の元凶だった。
此奴はhtaccessを自動生成するが、プラグインを無効化させてもそのhtaccessを消してくれなかったのだ。そのため無効化だけでは解決しなかったと。
ということで、無効化してuploadディレクトリ下に生成されていたhtaccessを削除したら解決…
ではあるのだが、さすがにそれで終了というのは後味が悪い。もう少しだけ調査を続行。
# BEGIN Register webp mime type
<IfModule mod_mime.c>
AddType image/webp .webp
</IfModule>
# END Register webp mime type
件のhtaccessの中身がコレ。実質たった1行。
AddType image/webp .webp というのは、「.webp ファイルは Content-Type として image/webp を返す」の意。
一見するとwebp以外のファイルに影響を及ぼすことはなさそうだが、この1行の削除で画像表示が回復したので、原因はこの設定。htaccessのフォーマットエラーとかパーミッションとかの理由でもないことが確定。
しかし、当サイトでは管理の楽さから掲載画像は9割以上がpng。webpは使用していない。
プラグイン有効時にソースコードに自動的にwebpが差し込まれることもないのを確認。
htaccessの記載をwebp取扱に最大限気を遣ったものに差し替えてみても画像表示は不可。
そもそも調べた限り、同じ事例は契約中のスターサーバー(フリー)でしか出てこなかった。
となると、サーバー由来のwebpに関する何某かの問題があるのかね?
フリーサーバーなのでそこんとこは追及できないし、取り敢えずWP-Optimizeは定期メンテにのみ使用することにすることで一応の解決。