title: htaccess rewrite rules in Nginx: setting the rewrite path
body: <p>I have a htaccess file I'm trying to convert into an nignx config file.</p>
  
  <p>Here's my htaccess file.</p>
  
  <pre><code>RewriteEngine on
  RewriteCond %{SCRIPT_FILENAME} !-f
  RewriteCond %{SCRIPT_FILENAME} !-d
  RewriteRule    !\.(jpg|css|js|gif|png)$    public/    [L]
  RewriteRule !\.(jpg|css|js|gif|png)$ public/index.php?url=$1
  </code></pre>
  
  <p>And the rules I have in my nginx config file:</p>
  
  <pre><code>location / {
  if ($request_uri !~ "-f"){
          rewrite !\.(jpg|css|js|gif|png)$ public/ break;
  }
  rewrite !\.(jpg|css|js|gif|png)$ public/index.php?url=$1;
  }
  
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
          # Move to the @missing part when the file doesn't exist
          try_files $uri @missing;
  
          # Fix for server variables that behave differently under nginx/$
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          # Include the standard fastcgi_params file included with ngingx
          include fastcgi_params;
          fastcgi_param PATH_INFO $fastcgi_path_info;
          fastcgi_index index.php;
  
  
          # Pass to upstream PHP-FPM; This must match whater you name you$
          #fastcgi_pass phpfpm;
          fastcgi_pass 127.0.0.1:9000;
  }
  
  location @missing {
          rewrite ^(.*)$ public/index.php?url=$1 break;
  }
  </code></pre>
  
  <p>However, when I hit /, I get a 403 Forbidden, but I can get to /public/index.php, thus the rewrite isn't working. </p>
  
  <p>Any ideas on what I'm doing wrong?</p>