I have a website which works error free on our local machine and also on our test server. However when we put it on the live server the website we get 406 errors randomly occuring.
Example, if we visit website.com/clothes or website.com/clothes/tshirts pages load fine and images display correctly without error. If we navigate to website.com/clothes/tshirts/bluepinned the product image (website.com/images/clothes/tshirts/bluepinned.jpg) fails to load giving a 406 error in firebug. If we cache refreshed the page (CTRL + F5) all of the pages resources (like stylesheets, images etc.) produce a 406 error and if you refresh again the whole server seems to time out and nothing is displayed. If I reboot my router (giving me a new IP address) I can visit the site again.
URLs:
website.com/clothes <- category showing all sub-categories and products (using product thumb image)
website.com/clothes/tshirts <- sub-category showing all products (using product thumb image)
website.com/clothes/tshirts/bluepinned <- individual product page (using large product image)
.htaccess:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(clothes)/([^/\.]+)/([^/\.]+)/?$ products.php?c=$1&sc=$2&p=$3 [NC,L,QSA]
RewriteRule ^(clothes)/([^/\.]+)/?$ products.php?c=$1&sc=$2 [NC,L,QSA]
RewriteRule ^(clothes)/?$ products.php?c=$1 [NC,L,QSA]
I checked phpinfo - no mod_security found. There's nothing special on those pages that are loading - basic HTML page with PHP class call to load category/sub-catagory/products. There's no Javascript or POST or AJAX.
Any ideas what might be causing the 406?
Update 1: This is the header response in Firebug/Firefox (removed Host and Referrer):
Response Headers:
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Content-Type text/html
Date Thu, 23 Aug 2012 05:36:54 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive timeout=5, max=99
Pragma no-cache
Server Apache
Transfer-Encoding chunked
X-Powered-By PHP/5.2.17
Request Headers:
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Cookie __utma=175298877.1838807483.1343995016.1345683454.1345698456.35; __utmz=175298877.1344487166.16.3.utmcsr=google.com|utmccn=(referral)|utmcmd=referral|utmcct=/imgres; __utmc=175298877; PHPSESSID=0d6664f0306618ac0f4218895efc4404; __utmb=175298877.2.10.1345698456
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
Update 2: Header response in Google Chrome:
Request Method:GET
Status Code:406 Not Acceptable
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:PHPSESSID=d5b28960a6d3e73c7db5a3808432ee71; __utma=175298877.1644911186.1345701704.1345701704.1345701704.1; __utmb=175298877.2.10.1345701704; __utmc=175298877; __utmz=175298877.1345701704.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1
Response Headers
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Type:text/html
Date:Thu, 23 Aug 2012 06:02:16 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=99
Pragma:no-cache
Server:Apache
Transfer-Encoding:chunked
X-Powered-By:PHP/5.2.17
Update 3: Added local response (that works!)
Response Headers
Accept-Ranges bytes
Connection Keep-Alive
Content-Length 28212
Content-Type image/jpeg
Date Thu, 23 Aug 2012 05:58:31 GMT
Etag "40000000cd15a-6e34-4c6eb29ada7fc"
Keep-Alive timeout=5, max=77
Last-Modified Fri, 10 Aug 2012 15:40:25 GMT
Server Apache/2.2.21 (Win64) mod_ssl/2.2.21 OpenSSL/1.0.0d PHP/5.3.8
Request Headers
Accept image/png,image/*;q=0.8,*/*;q=0.5
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Cookie PHPSESSID=mjete8dhhn9abi9fkdfkce0kh2
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
So I would imagine if the file is .jpg, image/* would allow it?