当在子目录中运行 CakePHP 应用程序控制器时,如何停止 Nginx 发送静态文件请求?

当在子目录中运行 CakePHP 应用程序控制器时,如何停止 Nginx 发送静态文件请求?

我正在尝试从 Nginx 上的子文件夹中运行 CakePHP 应用程序,但找不到静态文件,而是将其传递给应用程序控制器。这是我当前的配置:

    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;
        }
    }
}

我问了一个类似的问题,这个问题按照接受的答案和一些调整得到了解决cakephp 和 nginx 配置/重写规则

相关内容