web-dev-qa-db-ja.com

Nginx 404のサブディレクトリにあるCodeigniter

ドメインのサブディレクトリに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;
    }
}

およびCodeigniter.conf

$config['base_url'] = 'https:/example.com/api/';
$config['uri_protocol'] = 'REQUEST_URI';
$config['index_page'] = '';
3
Arodes

うまくいったので、解決策は$ 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;
    }
}
6
Arodes