Страница 1 из 1

Не корректно обрабатываются URL mod_rewrite

Добавлено: 30 июл 2020, 18:54
vruzin
Допустим, есть URL
http://test.com/image.jpg

Этот файл на сервере не существует

Надо сделать, чтобы если запрос идет на не существующий файл, то чтобы переадресация была на какую-то другую страницу или картинку.

В итоге, прописал в htaccess:
RewriteCond	%{REQUEST_FILENAME}	!-f
RewriteCond	%{REQUEST_FILENAME}	!-d
RewriteRule	^(.*\.(jpg|jpeg|gif|png|webp))$	/img.php?uri=/$1 [QSA,L]
Не работает. Надпись "404 Not Found. nginx"

Пошел в nginx и прописал (везде, где только можно)
try_files $uri $uri/ /img.php?url=$query_string;
Результат не поменялся, хотя, как только убираешь из запроса точку (http://test.com/imagejpg), сразу работает.

Т.е. получается, что где-то стоит переход на 404, а где не ясно. Проверял на рабочих серверах, такого глюка нет.

Как это можно решить?

Re: Не корректно обрабатываются URL mod_rewrite

Добавлено: 02 авг 2020, 23:07
Максим
1) Если вы работаете с Nginx, то не понятно зачем настраивали картинки в .htaccess. Картинки в связке Apache+Nginx обрабатывает Nginx и файлы .htaccess он не поддерживает.

2) >Пошел в nginx и прописал (везде, где только можно)
При таком подходе можно пойти на улицу и на заборах баллончиком писать try_files, эффект будет тот же. Советую внимательно изучить конфиг Nginx, там вы найдёте секцию, которая отвечает за картинки. Вот с ней и делайте всё что вам нужно.