Here's my .htaccess file:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ?p=$0
Which should redirect to mysite.com/?p=request
only if request
is not a file. But, it's improperly matching a request like http://mysite.com/auth.php?openid.ns=http%3A%2F
because of the %2F
(auth.php does exist). I don't understand why that's screwing things up... ideas?
Edit: Guys, I put emphasis on %2F
(which is a forward slash btw) because it works fine when this character isn't in there
To be clear,
I get a 404 for this page: http://mysite.com/auth.php?openid.ns=http%3A%2F
but not this page: http://mysite.com/auth.php?openid.ns=http%3A
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.