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.
  • Вопрос задан
  • 441 просмотр
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Всё логично - если info.php существует, в try_files первого локейшена дело до /index.php?$args не дойдёт, запрос переедет во второй локейшен и обработается обычным образом.

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 20:57
3000 руб./за проект
24 апр. 2024, в 20:35
5000 руб./за проект