🔄 Error 506 – La variante también negocia
🔄 Error 506 – La variante también negocia (Variant Also Negotiates)
El error 506 indica que el servidor encontró un problema en la negociación de contenido, porque la variante del recurso también intenta realizar negociación, lo cual genera un bucle interno o una configuración conflictiva.
En lenguaje simple:
El servidor se confundió al decidir qué versión del recurso entregar, porque las propias variantes también están diseñadas para negociar, creando un ciclo infinito.
Este código está definido en el RFC 2295 (transparente content negotiation).
✅ Causas más comunes
🔁 1. Bucle en negociación de contenido
Ocurre cuando:
-
El recurso A negocia contenido
-
pero la variante B también negocia contenido
-
y ambas se referencian entre sí
Resultado: un ciclo repetitivo → 506.
🌐 2. Configuración errónea de MultiViews o contenido negociado en Apache
Con mod_negotiation, Apache puede equivocarse si:
-
Hay múltiples variantes contradictorias
-
Un archivo
.varmal configurado -
Se mezclan idiomas o formatos de forma incorrecta
🔧 3. El servidor intenta entregar una variante que es a su vez un negociador
Por ejemplo:
-
/index.html -
/index.en.html -
/index.var(archivo de negociación)
Si .var referencia otra variante que también negocia → 506.
🛑 4. Configuración errónea en servidores que soportan negociación automática
Como:
-
Apache
-
Nginx con módulos externos
-
Servidores con negociación por idioma o formato
🧩 5. Fallas en negociación de API que retornan diferentes representaciones
Ejemplos:
-
JSON
-
XML
-
HTML
-
YAML
Si las variantes referencian negociadores en vez de contenido final.
🔧 Soluciones recomendadas
1️⃣ Revisar archivos .var de negociación (Apache)
Estos archivos definen variantes como:
Asegúrate de que ninguna variante sea otro archivo de negociación.
2️⃣ Desactivar MultiViews si causa conflicto
En .htaccess:
Esto evita que Apache intente negociar automáticamente.
3️⃣ Eliminar bucles de referencia
Si una variante apunta a:
-
otro negociador
-
un recurso dinámico que también negocia
-
una redirección circular
Debes corregir esas rutas.
4️⃣ Simplificar la negociación de contenido
En lugar de múltiples variantes:
-
Usa una sola versión del recurso
-
Implementa negociación manual desde backend (PHP, Node, Laravel, etc.)
Ejemplo en PHP:
Esto evita conflictos del servidor.
5️⃣ Revisar configuraciones de idiomas o formatos
Errores típicos:
-
Archivos duplicados (
index.html,index.htm,index) -
Variantes conflictivas (
.json,.xml,.var) -
Carpeta con mezcla de idiomas
6️⃣ Desactivar negociación transparente en Apache
Para evitar errores:
🔐 Consejo Pro
El 506 casi siempre es un error de configuración en Apache o en negociación de contenido, no de la aplicación en sí.
Para evitarlo:
✔️ No mezcles negociadores con variantes finales
✔️ Evita referencias cruzadas entre archivos .var
✔️ Desactiva MultiViews si no lo usas
✔️ Usa negociación desde tu aplicación en vez del servidor
No comments to display
No comments to display