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

Как в nginx заставить работать с фреймворком из папки для конкретного location?

Есть директория на сайте внутри которой развернут фреймворк. Никак не могу нацелить вызовы на index.php фреймворка при вызове по имени директории в url
/var/www/admin
  |-/public/
  |--index.php

Так же нужно что бы все роуты обрабатывались роутером фреймворка. Т.е. что бы url вида
Url - http://<ip>/admin/someone
Так же обрабатывались фреймворком
Конфиг на данный момент
location ~ ^/admin/(.*) {
        index index.php;
        alias /var/www/admin/public;
        try_files $uri $uri/ /index.php?$args;
    }

При таком конфиге в браузере получаю ошибку "File not found.", а в логах " *416 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream"

Уже кучу всего перепробовал, но нифига не получается. Максимум добился, что грузится index не из нужной папки, а из вышестоящей.
  • Вопрос задан
  • 62 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
@dodo512
location ^~ /admin {
    root  /var/www/admin/public;

    rewrite ^/admin/(.*) /$1 break;

    try_files $uri /admin/index.php?$args;

    location ~ \.php$ {
        rewrite ^/admin/(.*) /$1 break;

        fastcgi_pass  php-fpm;
        include       fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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