I've seen this issue crop up for other people, but in their cases, there was an issue with their regex. A quick trip to regexpal.com indicated to me that this was not the case. I have a simple htaccess file that allows me to write URLs as ".htm" or ".html", rather than ".php". I just recently discovered this script has issues when dealing with query strings ( ?argument=value ). Here's my full .htaccess code:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html?\??(.*)$ $1.php?$2 [nc]
When I print the query string of my request, it always comes out empty, and of course a check to array_key_exists doesn't find the id I'm trying to specify. I don't work with Apache much, but I was thinking this would be pretty simple.
If it matters, this htaccess is applied on top of a relatively simple XAMPP setup. I don't think I've even done anything to the httpd.conf file. I can try to provide any other information people think might be relevant.