title: Using NginX and Laravel: URL Rewrites
body: <p>I'm trying to setup the Laravel framework on my VPS running CentOS 6.4 and NginX 1.8.  I can get everything else to work perfectly, except I can't get the cleaner URLs to work, like using "website.com/home" instead of "website.com/index.php/home".  Can anyone help? This is the contents of my virtual host configuration file currently.</p>
  
  <pre><code>server {
  
      listen 80;
      server_name swati.havok.semicolony.com;
      access_log /usr/share/nginx/semicolony.com/_subdomains/swati/storage/logs/access.log;
      error_log /usr/share/nginx/semicolony.com/_subdomains/swati/storage/logs/errors.log;
  
      root /usr/share/nginx/semicolony.com/_subdomains/swati/public;
      index index.php;
  
      #browse folders if no index file
      autoindex on;
  
      # enforce NO www
      if ($host ~* ^www\.(.*))
      {
          set $host_without_www $1;
          rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
      }
  
      # serve static files directly
      location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
          access_log off;
          #expires max;
      }
  
      # removes trailing slashes (prevents SEO duplicate content issues)
      if (!-d $request_filename)
      {
          rewrite ^/(.+)/$ /$1 permanent;
      }
  
      # removes trailing "index" from all controllers
      if ($request_uri ~* index/?$)
      {
          rewrite ^/(.*)/index/?$ /$1 permanent;
      }
  
      # unless the request is for a valid file (image, js, css, etc.), send to bootstrap
      if (!-e $request_filename)
      {
          rewrite ^/(.*)$ /index.php?/$1 last;
          break;
      }
  
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   html;
      }
  
      location ~ \.php$ {
      root                    /usr/share/nginx/semicolony.com/_subdomains/swati/public;
      fastcgi_pass            127.0.0.1:9000;
      fastcgi_index           index.php;
      fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
      include             fastcgi_params;
      }
  
      location ~ /\.ht {
          deny  all;
      }
  }
  </code></pre>
  
  <p>Edit: It may be of importance that I am using Laravel 4.</p>