Как проксировать все запросы на index.php без изменения URL на базе NGINX
Столкнулся с проблемой перенаправления всех url на index.php без перезаписи для дальнейшей обработки классом маршрутизатором в php.
Пример: http://localhost/public/page/
Результат в php при запросе $_SERVER['QUERY_STRING']: /public/page/
Что пробовал: rewrite и с флагами, и без, не особо помог, он меняет url.
Структура проекта
Контейнеры:
Часть кода файла default.conf (NGINX):
Ответы (1 шт):
Автор решения: Andru
→ Ссылка
Спасибо Гончарову Александру за помошь, вот такой default.conf получился)
server {
listen ${NGINX_PORT};
root /app/public;
index index.php;
server_name ${NGINX_SERVER};
access_log /var/log/nginx/${NGINX_SERVER}.access.log;
error_log /var/log/nginx/${NGINX_SERVER}.error.log;
location / {
try_files $uri $uri/ @mod_rewrite;
}
location @mod_rewrite {
rewrite ^/(.*)$ /index.php?$1;
}
location ~ /\. {
deny all;
}
location ~ \.php$ {
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
server_name "~^www\.(.*)$";
return 301 $scheme://$1$request_uri ;
}

