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

    root            /var/www/vhosts/example.com/public/;

    location /
    {
        index index.php index.html index.htm;
    }

    # Enforce No WWW - I put this in an include:
    # include /etc/nginx/includes/enforce_non_www;
    if ($host ~* ^www\.(.*))
    {
        set $host_without_www $1;
        rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
    }

    # Check if file exists
    if (!-e $request_filename)
    {
        rewrite ^/(.*)$ /index.php?/$1 last;
        break;
    }

    # catch all
    error_page 404 /index.php;

    # The PHP Inclusion Block
    # include /etc/nginx/includes/php;
    location ~ \..*/.*\.php$
    {
        # I'm pretty sure this stops people trying to traverse your site to get to other PHP files
        return 403;
    }
    location ~ \.php(.*)$
    {
        # Pass the PHP files to PHP FastCGI for processing
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
    }

    # Deny Any Access to .htaccess Files That May Be Present (not usually in issue in Laravel)
    # include /etc/nginx/includes/deny_htaccess;
    location ~ /\.ht
    {
        deny all;
    }

}