Дело в том, что в Win и Unix разные правила. Unix различает регистр символов файловой системы.
Так как большинство серверов стоят на Unix-системах, то при запросе файла с сервера имеет значение регистр. Там спокойно могут быть и файл file.zip, и файл File.zip одновременно.
Quote (as-master)
если я стану заменять на сервере файл File.zip файлом file.ZIP, то он заменится однозначно, так как система справедливо полагает, что это один и тот же файл...
Именно что и не полагает. А почему заменяется файл на сервере с разными регистрами, причин может быть несколько: 1) Там стоит сервер с Win
2) Многие FTP-клиенты при закачке на сервер переводят регистр твоего файла в регистр уже имеющегося там файла.
3) На сервере установлены соответствующие скрипты.
4) Замена происходит не по имени, а по выбору. То есть, ты явно указываешь файл, который заменяется (например, выделяя его). Все зависит от организации работы на сервере и способа управления сайтом.
5) Кроме того, вполне возможен такой вариант: при добавлении файла, он и не заменяет вовсе файл с другим регистром, а просто добавляет его как новый.
Кстати, если вот так играться с разными регистрами в именах файлов своего сайта, неизбежны проблемы.
И получается иногда, что хорошо работающий на локальном компьютере сайт, перестает функционировать, когда выложишь его в интернете. Ссылки, обычно, начинают глючить, картинки пропадают.
И русские буквы лучше совсем не использовать в именах. Самая большая проблема: обращение к странице не в той кодировке, в которой она хранится на сервере. Например, если файл в кодировке win-1251, а браузер обращается в koi-8r. Ну и тому подобное.
Ну и напоследок - лучше не использовать очень длинные имена файлов. В некоторых осях они сильно ограничены по длине по сравнению с Win. В MacOS, например. Там она что-то около 30 символов (точно не помню).
А нам ведь хочется, чтобы наш сайт могли нормально просматривать не только те, у кого стоят форточки...