Codeigniter

server { server_name domain.tld;

root /var/www/codeignitor; index index.html index.php;

# set expiration of assets to MAX for caching location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ { expires max; log_not_found off; }

location / { # Check if a file or directory index file exists, else route it to index.php. try_files $uri $uri/ /index.php; }

location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; } }

After this, make sure that your codeIgniter config.php contains the following information: $config['base_url']	= "http://domain.tld/"; $config['index_page'] 	= ""; $config['uri_protocol']	= "REQUEST_URI";

An alternative configuration, production ready. You don't need to modify "config.php", except for removing "index.php" $config['base_url']	= ""; $config['index_page'] 	= ""; $config['uri_protocol']	= "AUTO";

server { listen      80; server_name localhost; root  /var/www/html/ci; autoindex on; index index.php;

location / {

try_files $uri $uri/ /index.php;

location = /index.php {

fastcgi_pass  127.0.0.1:6969; fastcgi_param SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name; include       fastcgi_params; }       }

location ~ \.php$ { return 444; }

}