如何配置 NGINX 位置以在服务器子目录中提供 Codeigniter RESTful API?

如何配置 NGINX 位置以在服务器子目录中提供 Codeigniter RESTful API?

我有以下目录结构:

mysite.com
- /api (codeigniter RESTful API Server)
- /app (backbonejs app)

我正在尝试配置 NGINX 以将对 mysite.com/api* 的所有请求指向 api 目录并使用 Codeigniter 的设置。

如果 CI 位于根目录中,我发现所有东西都可以正常工作。但是,当您尝试将其放在子目录中时,它会失败。

这是我目前拥有的:

server {
        listen 80;
        server_name local.mysite.com;
        root /Users/me/Sites/mysite;
        autoindex on;
        index index.html index.php;

        location /api {
            try_files $uri $uri/ /api/index.php;

            location ~ \.php$ {
                root /Users/me/Sites/mysite/api;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }


        }



    }

这样做只会给我一个“文件未找到”错误。甚至没有正确的 nginx 404。如何在服务器的子目录中为 CodeIgniter 配置 NGINX?

谢谢!

答案1

对于那些试图解决这个问题但因为还没有答案而失败的人来说,这里有一个非常简单的设置:

140     server {
141         listen 80;
142         server_name local.mysite.com;
143         root /Users/me/Sites/mysite;
144         autoindex on;
145         index index.html index.php;
146
147         location /api {
148             try_files $uri $uri/ /api/index.php$args;
149
150         }
151
152         location ~ \.php$ {
153             fastcgi_pass 127.0.0.1:9000;
154             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
155             include fastcgi_params;
156         }
157
158
159
160     }

相关内容