По nginx можете подсказать? (Компьютеры)
написал Finn, 2025-01-20, 16:40 (585 дней назад)
Опытным путем установлено, что если имя файла состоит из двух символов плюс расширение - веб-сервер его не отдает. А если три символа плюс расширение - пожалуйста. Где и как такое может быть настроено?
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)
Бред какой-то...
написал Finn, 2025-01-20, 17:02 (585 дней назад) @ Finn
Сейчас в голову пришла мысль проверить гипотезу. Получается следующее:
lp.pdf: Chrome - ошибка 404. Vivaldi, Edge - открывается
la.pdf: все браузеры открыли файл
Логи:
lp.pdf:
[20/Jan/2025:16:46:44 +0300] "GET /LP.pdf HTTP/2.0" 302
[20/Jan/2025:16:46:44 +0300] "GET /lp.pdf HTTP/2.0" 200
[20/Jan/2025:16:46:45 +0300] "GET /seo/get-url?url=https:%2F%2Fwww._______.ru%2Fpage404 (имя домена убрал)
la.pdf:
[20/Jan/2025:16:46:48 +0300] "GET /la.pdf HTTP/2.0" 200
Что-то совсем не догоняю что за дребедень. С первым именем зачем-то конвертация имени в верхний регистр идет. А если запрашивать la.pdf - конвертации в логах нет.
lp.pdf - какое-то служебное имя, что ли?
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)
Может из-за того, что *nix-ах была команда lp ?
написал Edward, 2025-01-20, 20:38 (585 дней назад) @ Finn
Ищи косяки в конфигах. Ну или еще где.
написал artemvp, 2025-01-20, 22:46 (585 дней назад) @ Finn
У меня все работает с этим же именем lp.pdf
Так в том-то и вопрос какие и где искать.
написал Finn, 2025-01-21, 09:07 (584 дней назад) @ artemvp
Я не великий гуру в вопросах веба. Я на том же серваке положил файл в корень другого сайта - открывается без вопросов. Значит, я так понимаю, что-то косячит в настройках именно основного сайта. ОК. Но как может выглядеть директива, затрагивающая имя файла?
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)
наоборот
написал lvm, 2025-01-21, 08:49 (584 дней назад) @ Finn
хром запрашивает LP, энжинкс редиректит его на lp - известный баг с редиректом в хроме. Воркэраунд - добавление фиктивного параметра к урлю (lp.pdf?google=morons)
Т.е. Chrome сам меняет имя файла в запросе по ходу пьесы?
написал Finn, 2025-01-21, 09:04 (584 дней назад) @ lvm
Оччень интересно... Ну вот я в каталоге сделал два файлика: lp.pdf и LP.pdf так все равно не открываются. Причем не важно как я указал имя файла - большими или маленькими.
А в чем именно баг, где почитать? Хотелось бы, все-таки, механику понять.
В том-то и дело, что я не могу менять запрос. По нему уже QR код сделали и материалы распечатали. Поторопились, да, но кто же ожидал.
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)
Но по логам оно же верно конвертит имя файла.
написал Finn, 2025-01-21, 09:30 (584 дней назад) @ lvm
lp.pdf:
[20/Jan/2025:16:46:44 +0300] "GET /LP.pdf HTTP/2.0" 302
[20/Jan/2025:16:46:44 +0300] "GET /lp.pdf HTTP/2.0" 200
[20/Jan/2025:16:46:45 +0300] "GET /seo/get-url?url=https:%2F%2Fwww._______.ru%2Fpage404 (имя домена убрал)
Т.е. пришел запрос на LP.pdf, мы его благодаря конфигу:
location ~ [A-Z] {
rewrite ^(.*)$ $scheme://$host$uri_lowercase;
}
перевели в lp.pdf. И даже получили 200 от сервера:
[20/Jan/2025:16:46:44 +0300] "GET /lp.pdf HTTP/2.0" 200
Но до клиента файл не дошел. Клиенту отдали 404. Может a этой команде преобразования что-то не так?
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)
А в режиме инкогнито запрос идет в lowercase как введено в адресной строке
написал Finn, 2025-01-21, 10:03 (584 дней назад) @ lvm
и файл спокойно отдается. А в обычном режиме непонятное - приходит запрос большими буквами, меняется на нижний регистр, клиенту отдается 304 типа не менялось, а потом 404. Походу как-то неровно дышит Chrome именно к сочетанию букв "lp" в имени файла...
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)
В чем заключается? И действительно ли это баг? Если да, то почему не поправили?
написал artemvp, 2025-01-21, 15:56 (584 дней назад) @ lvm
Как-то не верится, что уже давным давно про него всем известно, но исправлять его, Гугл почему-то, не хочет...
меняет кейс при редиректе
написал lvm, 2025-01-22, 08:53 (583 дней назад) @ artemvp
Вроде, разогнул.
написал Finn, 2025-01-21, 11:19 (584 дней назад) @ Finn
Отключил в конфиге кеш этого файла
#исключаем из кеша lp.pdf
location ~ lp\.pdf {
add_header Cache-Control "no-store, no-cache, private";
expires -1;
}
Теперь файл отдается без вопросов.
--
![[image]](https://i.postimg.cc/QdLKyQRj/star.png)