我有以下目录结构:
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 }