I've installed Apache on Windows. In my httpd.conf file, I've set AllowOverrides to All. I've placed a .htaccess file in my DocumentRoot directory, but it is not being read. I know it's not being read because if I add the contents directly to my httpd.conf file they are being read. What else am I missing?
one thing that you're missing is that it's much better to put such rules into httpd.conf rather than in .htaccess. it is extra work for the server to have to search for, open, and read .htaccess files in the current dir and in every parent dir back up to the DocRoot. a small amount of extra work, but it adds up when it happens on every request.
the best rule of thumb is to only use .htaccess when you DON'T have write access to httpd.conf. otherwise disable htaccess entirely and put all your configuration into httpd.conf.
Make sure the directives you are trying to put in your .htaccess file are valid within the .htaccess context. Go to the Apache 2.2 Directive Quick Reference page and verify that each of the directives you want to put in .htaccess is valid in that context. I suspect you are trying to use a directive that is not valid in .htaccess, which is why it works when you put it in httpd.conf.