@cubooks
Web-developer

Почему nginx не отдает файлы с русскими буквами?

Добрый день! После переноса сайта на Nginx, я заметил такую проблему, что мой сайт не отдает файлы с русскими буквами. Не подскажите, как с этим побороться?

Кусочек конфига:
# set expiration of assets to MAX for caching
    location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
         expires max;
         log_not_found off;
         #add_header Cache-Control public;
         #add_header Access-Control-Allow-Origin *;
    }


При обращении к файлу с русскими буквами выдает 404, и вот такие заголовки:

Request URL: http://stat.site.ru/gallery/%D0%A1%D0%BF%D0%B0%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B0%D1%88%D0%BD%D1%8F_21.jpg
Request Method: GET
Status Code: 404 Not Found

Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 04 May 2015 09:51:08 GMT
Server: nginx/1.4.6 (Ubuntu)
Transfer-Encoding: chunked

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: ru,en;q=0.8
Cache-Control: no-cache
Connection: keep-alive
Host: stat.site.ru
Pragma: no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3429 Safari/537.36


Логи имеют записи:
2015/05/04 09:57:09 [info] 1322#0: *221 client *.*.253.87 closed keepalive connection
2015/05/04 09:57:14 [info] 1322#0: *225 client *.*.25.139 closed keepalive connection


Другие файлы отдаёт нормально.
  • Вопрос задан
  • 1037 просмотров
Пригласить эксперта
Ответы на вопрос 1
SimWhite
@SimWhite
Для начала, рекомендую избавится от кириллицы и привести все называния файлов в нормальный вид, без русских кодовых страниц. Обойти проблему можно попробовать установив кодовую страницу системы в UTF-8, переименовав файлы в UTF-8, отдавать страницу явно указывая что у вас UTF-8. Таким образом, минимизируете количество ошибок. Для полного решения, повторюсь, избавится от русских имен файлов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы