how to do the following modifications in NGINX server for codigniter application

  • Posted October 22, 2020
  • Nginx

the follwing is from

How can I use the script on the NGINX server?

NGINX server does not support .htaccess, so if you upload script files to your server, you will 404 error for all your links. In order for your links to work, you need to make some settings on your server.

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$ {
                include fastcgi.conf;

After this, make sure that your “application/config/config.php” file 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_param  SCRIPT_FILENAME /var/www/html/ci$fastcgi_script_name;
                include        fastcgi_params;

        location ~ \.php$ {
            return 444;


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hi there @santhosh2116,

As recomended in the official documentation, what I could suggest is to try and change the try_files rules to:

        try_files $uri $uri/ /index.php$is_args$args;

Let me know how it goes. Regards, Bobby