前提・実現したいこと
お世話になります。
表題の件について、WordPressを使ったサイトで画像ファイルの拡張子が「.php.jpeg」の時、
ブラウザで表示すると「500エラー」になり、表示出来ず困っています。
「xxx.php.jpeg」のような拡張子でもそのまま画像ファイルとして表示させる方法をご教授いただけますと幸いです。
発生している問題・エラーメッセージ
ブラウザ側 - 500エラー
xxx.php.jpeg
500 Internal Server Error アクセスしようとしたページは表示できませんでした。
サーバー側のエラー
End of script output before headers: 48a9575f9a3e9d20b049763d4def4b38.php.jpeg
試したこと
調べた限り「.htaccess」で出し分けなどの制御を追加すれば解決するかもというところまでは調べましたが、今回の「.php.jpeg」という件を直接解決する方法が見つかりませんでした。
WebP フォーマットの画像の出し分け
https://www.webdesignleaves.com/pr/html/htaccess.html
.htmlをPHPとして動作させる
https://xn--web-oi9du9bc8tgu2a.com/how-to-use-php-in-html-files/
またエラーログを確認したところ「End of script output before headers」がerror_logに表示されていた。
https://qiita.com/sKawashima/items/9c045eadf48071ebf6a2
補足情報(FW/ツールのバージョンなど)
- サーバー: Xserver
- CMS: WordPress
現在の.htaccess設定
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{ENV:HTTPS} !on RewriteCond %{HTTP:X-Forwarded-Proto} http RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
> 画像ファイルの拡張子が「.php.jpeg」の時
これは「そういうファイル名でディスクに置いてあるJPEGファイル」でしょうか?それとも、「PHPが動的にJPEGを生成してそれを返す」仕掛けがある状況でしょうか?
ご質問ありがとうございます。
今回のケースは前者の『***.php.jpeg というファイル名でディスクに置いてあるJPEGファイル』となります。
何か解決方法がありましたらよろしくお願いいたします。
error_logファイルの内容を見ましょう。
otnさん
> error_logファイルの内容
確かに、おっしゃるとおりでした。
内容を確認したところ「End of script output before headers: 」のエラーが起きておりました。
調べたところ権限問題かもしれず、似た状況の方も居られるようでした。
https://qiita.com/sKawashima/items/9c045eadf48071ebf6a2
現在の「wp-content/uploads」の権限は「755」です。
「775」と「777」も試しましたが、変わらずでした。