3

I'm trying to setup Codeigniter in a subdirectory of my domain. Currently I only get an 404 from Codeigniter on the index page. As soon as a want to go to example.com/api/welcome/index I get a 404 from nginx.

My 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;
    }
}

and Codeigniter.conf:

$config['base_url'] = 'https:/example.com/api/';
$config['uri_protocol'] = 'REQUEST_URI';
$config['index_page'] = '';
  • The URL's you are putting in are not within the path of the location in the nginx.conf – chicks May 30 '15 at 16:44
  • I don't understand, what do you mean? – Arodes May 31 '15 at 18:27
6

Got it working, the solution was to use $request_filename; instead of $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;
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.