- 2026.02.13 UP !
WordPressで日本語画像が404になる原因と対処法|MacとサーバーのNFC/NFDの違い
こんにちは FULL Web Designの渡邊です。この記事は制作者向けの記事です。
ローカルで修正後、WordPressの日本語画像が404になる
現在サーバーで運用しているWordPressサイトをローカル環境で再現し、修正・カスタマイズ後にアップロード。
その際、日本語ファイル名の画像が表示されなくなる現象が発生しました。
URLは正しいように見える。
でも画像は404。
ファイル名も合っているはずなのに表示されない、という少し厄介な症状でした。
原因はMac(NFD)とサーバー(NFC)のUnicode正規化の違い
今回調べてみて分かったのが、Unicodeの「正規化形式」の違いです。
-
サーバー(Linux環境)は基本的に NFC(合成文字)
-
Macのローカル環境は NFD(分解文字) になりやすい
例えば「バ」という文字。
-
NFC:ひとつの文字として保存
-
NFD:「ハ」+「濁点」に分解して保存
見た目は同じでも、内部のデータは別物です。
その結果、
-
データベースに保存されている画像URL
-
実際のアップロードファイル名
が一致せず、404が発生していました。
見た目は同じなのに、中身が違う。
今回の原因はこれでした。
サーバー基準でZIP圧縮することで解決
解決方法はシンプルです。
-
サーバー側でアップロードフォルダをZIP圧縮
-
それをダウンロード
-
ローカルで解凍して作業
-
戻すときもサーバー基準で展開
ローカルで圧縮してアップロードするのではなく、
「サーバー側を基準」にすることで問題は起きなくなりました。
基準を一つに固定するのがポイントでした。
今後同じ問題を起こさないための対策
できれば日本語ファイル名は使わない。
半角英数に統一すれば、この問題はほぼ起きません。
それでも日本語を使う場合は、
-
転送方法を固定する
-
サーバー基準で圧縮・展開する
この2点を守るだけで再発は防げます。
以上、備忘録です。
ホームページ制作ならFULL ウェブデザインにお任せ下さい。
25年以上のグラフィック経験と、20年以上のWeb制作経験があります。
初回お問い合わせは、メールにてお願いいたします。
Webデザイナー/制作者。
中小企業・個人事業主向けに、集客と運用を意識したWebサイト制作を行っています。
デザインだけでなく、公開後に「使われ続けること」を重視した設計を大切にしています。