title: .htaccess clashing with GET params
body: <p>Here's my .htaccess file:</p>
  
  <pre><code>RewriteEngine on
  
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule .* ?p=$0
  </code></pre>
  
  <p>Which should redirect to <code>mysite.com/?p=request</code> only if <code>request</code> is not a file. But, it's improperly matching a request like <code>http://mysite.com/auth.php?openid.ns=http%3A%2F</code> because of the <code>%2F</code> (auth.php does exist). I don't understand why that's screwing things up... ideas?</p>
  
  <p><strong>Edit:</strong> Guys, I put emphasis on <code>%2F</code> (which is a forward slash btw) because it <em>works fine when this character isn't in there</em></p>
  
  <p>To be clear,</p>
  
  <p>I get a 404 for this page: <code>http://mysite.com/auth.php?openid.ns=http%3A%2F</code></p>
  
  <p>but not this page: <code>http://mysite.com/auth.php?openid.ns=http%3A</code></p>
  
  <hr>
  
  <p>Just FYI, I really screwed this question up. It was a 403 error that occurred anytime %2F appeared in the URL. My app was catching this error and spitting out a deceptive 404 which might be less frightening to the end user. Really had nothing to do with .htaccess after all. More details in my answer below.</p>