Задать вопрос
@akdes

Конфигурация Nginx — все запросы только на index.php, как?

Привет всем!

Есть сервис на php только бэкэнд. Работа происходит только через index.php.

Вот конфиг:
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www;
    index.php;

    server_name _;

  

    location / {
        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}


Работает отлично, но т.к. запрос необходим исключительно к index.php, хочется обезопасить всё остальное, находящиеся в /var/www, например change.log не должен быть доступен.

пытался из локаций оставить только одну, дабы сразу все запросы шли к php-fpm, без подгрузки статических файлов и т.д.
location / {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

но тогда запросы типа site.com/api/1/2/3 теряются - 404. А мне нужно, что-бы они тоже выходили на index.php.

Пытался убирать try_files, но тут тоже что-то пошло не так... не понял до конца..

Спасибо
  • Вопрос задан
  • 455 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Например так:
location / {
    rewrite ^ /index.php break;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Nc_Soft
location / {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME /var/www/index.php;
        include fastcgi_params;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы