Как остановить отправку статических файловых запросов Nginx на контроллер приложения CakePHP при запуске Cake в подкаталоге?

Я пытаюсь запустить приложение CakePHP из подпапки на Nginx, но статические файлы не обнаруживаются и вместо этого передаются в контроллер приложения. Вот мой текущий конфиг:

    location /uniquetv {
        index index.php index.html;

        if (-f $request_filename) {
            break;
        }

        if (!-e $request_filename) {
            rewrite ^/uniquetv(.+)$ /uniquetv/webroot/$1 last;
            break;
        }
    }                                        

    location /uniquetv/webroot {
        index index.php;

        if (!-e $request_filename) {
            rewrite ^/uniquetv/webroot/(.+)$ /uniquetv/webroot/index.php?url=$1 last;
            break;
        }
    }

Есть идеи?:)

1 ответ

Throlkim, что именно отображается, когда вы переходите по URL, который хотите использовать? т.е. вы получаете сообщение об ошибке 504 и т. д.

вам нужно что-то похожее на это, которое работает для меня

server {

    listen   80;
    server_name  yourwebsite.com;

    access_log /path_to_your_logfile/log/access.log;
    error_log /path_to_your_logfile/log/error.log;

    location / {

        root /path_to_cake_root/cake/app/webroot;
        index index.php;

        if (-f $request_filename) {
            break;
        }
        if (!-f $request_filename) {
            rewrite ^/(.+)$ /index.php?url=$1 last;
            break;
        }

        #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME /path_to_cake_root/cake/app/webroot/index.php;
            #$fastcgi_script_name;
            include        /etc/nginx/fastcgi_params;
        }
    }
}

Я задал похожий вопрос, который был решен в соответствии с принятым ответом, и немного изменил правила настройки / перезаписи торт- php & nginx

Другие вопросы по тегам