Windowsではファイル名に英大文字と英小文字を使えます。しかし、内部的には大文字と小文字は区別されません。
一方、WebサーバーはUNIXベースなので英大文字と英小文字が使え、そしてこれらは区別されます。
このことが時に問題の原因となります。
慣習的なファイル名
例えばWindows 10の画像にファイル名を付ける場合、スペースは問題となりますので使わないかアンダーバーを使うとして、
- Windows10-01.png
などとファイル名を付けたとします。Windowsは慣習的に頭文字を大文字とし残りを小文字とします。
このファイルをサーバーにアップすると大文字も小文字も変更されないで、
- Windows10-01.png
として登録されます。
なお、Windows10-01.pngとWindows10_01.pngのように連番との区切りがアンダーバーかハイフンかで意味が違うそうです。
アンダーバーは文字と解釈されるのでSEO的によくないとのことで、Windows10という単語を認識させるには連番との区切りはハイフンを使った方がよいとのことです。
問題発生
記事を書いていると同じようなことを書くことがあり、そこで使う画像も知らず知らずのうちに同じファイル名を付けてしまいます。
ローカルで記事を書く場合、記事ごとに画像をフォルダー分けするので同じファイル名でも競合しません。
また、サーバーにアップすると、既に同じファイル名の画像があると自動でファイル名が変更されます。
例えば、Windows10-01.pngというファイルが既に有る状態で、Windows10-01.pngをアップすると、WordPressは、Windows10-01-2.pngというファイル名に変更して登録します。
ところがある記事でwindows10-01.pngというファイルを作ってアップしてしまいました。頭文字が大文字ではなく小文字のため、UNIXベースであるWordPressはこれを区別し、
- Windows10-01.png
- windows10-01.png
という2つのファイルとして登録してしまいます。
ある時、サーバーのバックアップを行うためFTPでファイルをWindowsパソコンにダウンロードしたところファイル名の競合が発生しました。
調べたところ上記のように大文字と小文字の違いで2つのファイルがサーバーにありますが、Windowsでは大文字と小文字が内部的には区別されませんので、同じファイルと認識されてしまったのです。
対策
対策と言っても決定的なものは無く、面倒で、すぐにやらなくなりそうです。
- 画像を保存するフォルダーの最上位フォルダーから使おうとするファイル名で検索し競合が無いことを毎回確認する
- バックアップをMacで行う
Macにバックアップするのはよいのですが、安全性を考えると外部のNASなどに保存した方がよいでしょう。
その場合、NASはSambaですからWindowsと同様に大文字と小文字が区別されませんので、同じ問題が発生します。
まとめ
良い解決法はないのですが、大文字と小文字に起因するこのような問題が発生する可能性があるということは認識しておく必要があります。
コメント