406 Error (Not Acceptable)
This is due to Apache mod_security that is turned on by default. While you can use the following to diagnose the problem (turning the filter off should resolve the issue):
It’s important to leave the filter on as it helps prevent spam and injection attacks. What you need to do is figure out (ask your hosting provider if you need help) the phrases that are triggering the filter. Typically these will include phrases that include possible commands such as “ftp,” “telnet,” “ssh,” etc. Once you know which ones are, you can modify the filter to permit the page that is not loading (scan your logs or Google sitemap for 406 errors to find all the pages experiencing this problem):
SecFilterSelective "POST_PAYLOAD" "allow these words" "allow,nolog"
Good question. I believe the 406 error is not specific to any server, but Apache has its own way of handling the error. On IIS, for example, the error might display differently, depending on how it is handled.
The SECFilter command is useful in disabling the 406 error, but be careful with what you let through. As the article mentions, I would target specific file patterns and URL’s. Letting everything through is too much of a security risk (that’s why SECFilter was implemented by Apache in the first place).
What an annoying error! Not an acceptable representation of this resource…WTF? Why oh why can’t engineers put things into English the first time. It shouldn’t be up to the thousands of web designers/ developers out there to restate error message in hundreds of different ways if a little upfront effort by the initial engineers could make things easier for all of us! Right?
Share the post "Why Do I Keep Getting this Error: 406 Error (Not Acceptable)?"