First thing to check is your .htaccess file.
Remove everything in it and use the code sample provided by EllisLab in the docs for removing index.php: https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html
# Removes index.php from ExpressionEngine ...
First thing to check is the obvious - is the product out of stock? Have you definitely submitted an item_qty?
If those don't work - the best way to diagnose issues like this is to check the Network tab in your browser's developer tools. Make sure the form fields are getting submitted as you expect, and if successful you should see only a single 302 redirect ...
I have got code used previously in .htaccess (not recently tested), but what you also have to be careful of is the filenames of other content, specifically images, etc. As both htaccess and Apache would do all URLs on the server.
As you've indicated in the question, the pagination urls don't work lowercase - the other one to watch out for is search results (...
Almost two years later there is a response from the Expression Engine support team:
The above method is for HTTP Auth access control of a template, when enabled
in a template’s settings. This optional feature uses an appropriate solution
when PHP is given the task of providing this functionality. ref:
For anyone who runs into this, I resolved it by modifying the web.config file to allow errors to "PassThrough".
I changed the following:
<httpErrors errorMode="Custom" existingResponse="Replace">
<httpErrors errorMode="Custom" existingResponse="PassThrough">
This resolved the issue I was facing. However, I wil only turn this on when I ...
For anyone else coming across this, ExpressionEngine 2.8.0 introduced a new config variable for httponly cookies, and it's set to 'yes' by default: http://ellislab.com/expressionengine/user-guide/general/system_configuration_overrides.html#cookie-httponly-config