参见英文答案 > How can I get around using alias in nginx?1个
当我尝试在位置/ api / v1使用带有?$args的try_files时,我得到错误404.没有它它正常工作.任何的想法?
Nginx配置
server {
listen 80;
server_name domain.com;
index index.php;
root /home/ec2-user/dev.domain.com.br/webroot/default/web;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php${
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
location /api/v1 {
alias /home/ec2-user/dev.domain.com/webroot/apiv1/web;
# Works,but don't parse args.
try_files $uri /api/v1/index.php; ## << WORKING
# Do not work. Error 404.
try_files $uri /api/v1/index.php?$args; ## << ERROR
location ~ \.php${
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
}
最佳答案
There are issues当你一起使用try_files和alias指令时.
作为解决方法,删除别名并使用root和重写.