braxi
@braxi
Начинающий индивидуальный разработчик

Единая точка входа на nginx+php-fpm?

Мне нужно, чтобы любой запрос перенаправлялся на index.php. Пробую так (взял с какого-то сайта):
server {
        server_name 192.168.1.20;
        listen 80;
        root /home/abc/www;
        index index.php;
        charset utf-8;

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

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/home/abc/service/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }   
    }

При таком конфиге если я кладу рядом с index.php файл info.php, и запрашиваю его в браузере (192.168.1.20/info.php), то он выполняется. А должно было отфутболить на index.php.
  • Вопрос задан
  • 444 просмотра
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Всё логично - если info.php существует, в try_files первого локейшена дело до /index.php?$args не дойдёт, запрос переедет во второй локейшен и обработается обычным образом.

Если хотите, чтобы все php-файлы у вас редиректились на index.php - модифицируйте соответствующим образом try_files или просто добавьте реврайт в /.
Ответ написан
Ваш ответ на вопрос

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

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