Nginx 404 子目录中的 Codeigniter

Aro*_*des 3 nginx php-fpm codeigniter http-status-code-404

我正在尝试在我的域的子目录中设置 Codeigniter。目前我只在索引页面上从 Codeigniter 得到 404。一旦想去,example.com/api/welcome/index我就会从 nginx 得到 404。

我的nginx.conf

location /api/ {
    alias  /var/www/api/;
    try_files $uri $uri/ /api/index.php =404;
    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index   index.php;
        fastcgi_pass    backend;
        include fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
Run Code Online (Sandbox Code Playgroud)

Codeigniter.conf

$config['base_url'] = 'https:/example.com/api/';
$config['uri_protocol'] = 'REQUEST_URI';
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)

Aro*_*des 7

让它工作,解决方案是使用 $request_filename; 而不是 $document_root$fastcgi_script_name;

location /api/ {
    alias  /var/www/api/;
    try_files $uri $uri/ /api/index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index   index.php;
        fastcgi_pass    backend;
        include /etc/nginx/fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $request_filename;
    }
}
Run Code Online (Sandbox Code Playgroud)