Recently we faced strange error called “Negotiation Error” while working with OXID eShop:
[negotiation:error] [pid 5632] [client 192.168.1.118:43532] AH00687: Negotiation: discovered file(s) matching request: /var/www/html/oxid497/out/pictures/generated/manufacturer/icon/100_100_100/symbol(2).jpg (None could be negotiated)
On researching we found multiple solutions and reasons for the error. But none fit the case we were facing. Finally we found one perfect reason for the error.
According to Apache Content Negotiation:
If the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client’s requirements.
So we checked in /etc/apache2/sites-available/000-default.conf and found
Options Indexes FollowSymLinks MultiViews
..added to it.
Upon removing the keyword MultiViews and restarted Apache2. It worked perfect!!