Erro no Apache – Negotiation: Discovered File(s) Matching Request: None Could Be Negotiated

image_pdfimage_print

Pelo que observamos na internet, a reclamação deste erro costuma estar associada ao mod_rewrite. As pessoas indicam que seu mod_rewrite não parece estar funcionando corretamente e que o erro apresentado no título deste artigo é visto no log do Apache, como abaixo apresentado:

[Wed Fev 15 12:00:00 2012] [error] [client 127.0.0.1] Negotiation: discovered file(s) matching request: /Sites/something.com/users (None could be negotiated).

Este erro na verdade, pode estar acontecendo pela existência da opção MultiViews ativada para o apache ou para o virtualhost apache.

A option “MultiViews” em servidores Apache tem o seguinte efeito em fase de negociação de conteúdo:

Se o servidor recebe um pedido de /algum/diretório/drall, se /algum/diretório tem a opção MultiViews ativada, e /algum/diretório/drall não existe, em seguida, o servidor lerá o diretório procurando arquivos denominados drall.*. Encontrando, irá obter o tipo do arquivo de acordo com seu nome, atribuindo-lhe o mesmo tipo de mídia e conteúdo de codificações que teria se o cliente tivesse pedido o arquivo por seu real nome. Em seguida, ele escolhe a melhor correspondência com as necessidades do cliente e devolve o arquivo.

Para solucionár este erro, bastaria remover o MultiViews options do virtualhost desejado. Isto claro, se ele não estiver sendo utilizado.

Em geral a configuração é:

Options Indexes FollowSymLinks MultiViews

E deverá ficar como:

Options Indexes FollowSymLinks

No Debian/Ubuntu e seus derivados, os arquivos de configuração dos virtualhost ficam em /etc/apache2/sites-available/

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!