Nginx with fucking CI and security

CI and Nginx

Oh, it's time to note the fucking Codeigniter rewrite with Nginx, which will cause a 404 status to make you (╯°□°)╯︵ ┻━┻.

If you use Codeigniter, aka CI, you may know its fucking url rewrite with index.php. And the rewrite rules are for apache and not nginx. Hence, we should use nginx rewrite rules to get our site up and running.

Below is a section of my nginx.conf.

server {
    listen 80 default;
    server_name www.example.com example.com;

    root  /home/wwwroot/ci/;
    index index.php;

    location / {
        if ($request_filename !~ (index.php)) {  
            rewrite ^/(.*)$ /index.php?$1 last;  
        }  
    }

    location ~ .*.(php|php5)?$ {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fcgi.conf;
    }

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ttf|svg|woff|eot)$ {
        expires      30d;
    }

    location ~ .*.(js|css)?$ {
        expires      12h;
    }

    access_log  /home/logs/ci_access.log  access;
    error_log /home/logs/ci_error.log;
}

End

If you have something to correct, welcome to point it out:D

References: