NGINX не срабатывает rewrite
Проблема в несрабатывании правила rewrite. Обращаюсь на http://server.ru/infoblock/ajax.php Часть конфига:
location ~ \.php$ {
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
# try_files $uri = 404;
include fastcgi_params;
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "upload_max_filesize = 128M";
fastcgi_param PHP_VALUE "max_file_uploads = 10";
#fastcgi_param HTTPS on;
}
location / {
#
rewrite ^/images/(.*)$ /var/images/$1 last;
rewrite ^/form/ajax.php?(.*)$ /module/form/ajax.php?$1 last;
rewrite ^/infoblock/ajax.php?(.*)$ /module/infoblock/ajax.php?$1 last;
...
}
При этом в логе:
2021/03/01 11:16:36 [error] 335#335: *2345452 FastCGI sent in stderr: "Unable to open primary script: /var/www/***/infoblock/ajax.php (No such file or directory)" while reading response header from upstream, client: 109.174.47.21, server: ***, request: "GET /infoblock/ajax.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php5.6-fpm.sock:", host: "***"
Получается так, мол файла такого нет, до реврайта дело не доходит. Бред? Или я чего-то важного не знаю? Прошу помощи!
UPDATE: Работаю с NGINX около 10 лет, сайтов с похожим конфигом работает штук 20. Ошибки такой не встречал ни разу.
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Нашёл решение сам, всё оказалось довольно просто, может кому пригодится. Вынес правила rewrite из location выше и заработало.