🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Solución al error 'AllowOverride None' en PrestaShop con DirectAdmin

Actualizado el 8 de septiembre de 2025

¿Qué significa el error "AllowOverride None" y por qué aparece en PrestaShop?

Si estás leyendo esto, es muy probable que hayas intentado acceder a tu tienda PrestaShop y te hayas encontrado con un mensaje de error tan frustrante como críptico. No te preocupes, es uno de los errores más comunes en el mundo del hosting y, afortunadamente, tiene una solución clara y definitiva.

El error "AllowOverride None" no es un fallo de PrestaShop en sí, sino una restricción impuesta por la configuración del servidor web Apache. Este mensaje indica que Apache tiene desactivada la capacidad de leer e interpretar los archivos .htaccess en el directorio donde está instalada tu tienda.

¿Qué es un archivo .htaccess y por qué es tan importante?

Un archivo .htaccess es un archivo de configuración a nivel de directorio que permite sobreescribir ciertas directivas del servidor sin necesidad de modificar la configuración global de Apache. En PrestaShop, este archivo es vital, ya que se encarga de:

  • Generar URLs amigables (las que no tienen index.php?).
  • Redirigir el tráfico de HTTP a HTTPS (si lo tienes configurado).
  • Establecer cabeceras de caché y compresión para mejorar la velocidad.
  • Bloquear accesos no autorizados a archivos sensibles.

Cuando Apache tiene configurado AllowOverride None, simplemente ignora por completo las instrucciones que se encuentran dentro del .htaccess. El resultado práctico es que tu tienda puede mostrar errores como el clásico "500 Internal Server Error", o peor aún, una página en blanco que no te deja acceder ni al panel de administración.

¿Por qué DirectAdmin tiene esta configuración?

DirectAdmin es un panel de control de hosting muy popular por su eficiencia y bajo consumo de recursos. Sin embargo, por defecto, en muchas de sus configuraciones de Apache, la directiva AllowOverride está establecida en None para los directorios principales. Esto se hace por razones de seguridad y rendimiento, ya que obligar a Apache a leer y procesar archivos .htaccess en cada petición puede ralentizar el servidor.

Sin embargo, para aplicaciones como PrestaShop, esta configuración es demasiado restrictiva. La buena noticia es que podemos solucionarlo de forma segura y sencilla, sin necesidad de ser un experto en administración de servidores.

Solución al error "AllowOverride None" en PrestaShop con DirectAdmin

Vamos a ver las dos formas principales de solucionar este problema. La primera es la más recomendada y segura, ya que se realiza desde el propio panel de DirectAdmin. La segunda es una alternativa si no tienes acceso a todas las opciones del panel.

Método 1: Modificar la configuración de Apache desde DirectAdmin (Recomendado)

Este método es el más limpio, ya que modifica la configuración del VirtualHost de tu dominio directamente desde el panel.

Paso 1: Acceder a la configuración del dominio

  1. Inicia sesión en tu panel de DirectAdmin.
  2. En el menú superior, busca la sección de "Cuenta" o "Administración" (depende de la versión, puede variar ligeramente).
  3. Haz clic en "Configuración de Dominios" o "Domain Setup".
  4. Verás una lista de tus dominios. Haz clic en el dominio donde está instalada tu tienda PrestaShop.

Paso 2: Editar el VirtualHost (httpd.conf)

  1. Dentro de la configuración de tu dominio, busca una pestaña o sección llamada "Configuración de Apache", "Apache Management" o "Custom httpd.conf".
  2. Se abrirá un editor de texto con la configuración del servidor virtual para tu dominio.
  3. Verás un bloque similar a este:
<VirtualHost *:80>
    ServerName tudominio.com
    ServerAlias www.tudominio.com
    DocumentRoot /home/usuario/domains/tudominio.com/public_html
    ...
</VirtualHost>

Paso 3: Añadir la directiva AllowOverride

Dentro de este bloque <VirtualHost>, y antes de la etiqueta de cierre </VirtualHost>, necesitas añadir un bloque <Directory> que apunte a la raíz de tu tienda (el DocumentRoot). El bloque debería verse así:

<Directory /home/usuario/domains/tudominio.com/public_html>
    AllowOverride All
</Directory>

[INFO] Asegúrate de reemplazar /home/usuario/domains/tudominio.com/public_html con la ruta real de tu DocumentRoot. Puedes copiarla directamente de la línea DocumentRoot que ya está en el archivo.

Paso 4: Guardar y reiniciar Apache

  1. Haz clic en "Guardar" o "Update".
  2. DirectAdmin te pedirá que "Reescribas" o "Reconstruyas" la configuración. Acepta.
  3. Finalmente, necesitas reiniciar Apache. Busca en el panel principal la opción de "Reiniciar Servicios" o "Restart Services" y selecciona "Apache" (o "httpd").

¡Listo! Con esto, Apache ya podrá leer tu archivo .htaccess y el error debería desaparecer.

Método 2: La solución rápida (No recomendada a largo plazo)

Si no te sientes cómodo editando la configuración del servidor, existe un "parche" temporal. Consiste en cambiar el nombre del archivo .htaccess de PrestaShop para que no se intente leer. Sin embargo, esto no es una solución, es una medida para "desatascar" la tienda temporalmente, ya que perderás las URLs amigables y otras funcionalidades.

  1. Accede a tu hosting por FTP o mediante el administrador de archivos de DirectAdmin.
  2. Localiza el archivo .htaccess en la carpeta raíz de tu PrestaShop.
  3. Cámbiale el nombre a algo como .htaccess_backup.
  4. Intenta acceder a tu tienda. Verás que ya no da el error, pero la URL será larga y fea (con index.php).
  5. Importante: Ve a tu panel de administración de PrestaShop y en Parámetros Avanzados -> Rendimiento, activa la opción de "Reescribir URLs". PrestaShop intentará regenerar el archivo .htaccess. Si la configuración de Apache sigue sin permitirlo, el archivo no se creará y el problema persistirá o volverá a aparecer.

Esta solución es útil para diagnosticar, pero la primera opción es la correcta y definitiva.

¿Qué pasa si el error persiste? El papel de mod_rewrite

Si ya has configurado AllowOverride All y el error persiste, el siguiente sospechoso habitual es el módulo mod_rewrite de Apache.

¿Cómo saber si mod_rewrite está activo?

mod_rewrite es el motor que permite que las reglas dentro del .htaccess funcionen. Sin él, incluso con AllowOverride All, las reglas de reescritura de URLs serán ignoradas.

Puedes verificarlo de dos maneras muy sencillas:

  1. Desde el panel de control de tu hosting: En DirectAdmin, busca la sección de "Extensiones PHP" o "Configuración de Software". En algunos paneles, hay un apartado para ver los módulos de Apache cargados. Busca mod_rewrite en la lista.

  2. Creando un archivo de prueba: Crea un archivo llamado info.php en la raíz de tu tienda con el siguiente contenido:

<?php
phpinfo();
?>

Accede a tudominio.com/info.php en tu navegador. Busca la sección de apache2handler o Apache Modules y revisa si mod_rewrite aparece en la lista. Después de comprobarlo, borra este archivo por seguridad.

¿Cómo solucionar que mod_rewrite esté desactivado?

Si mod_rewrite no está en la lista, tienes que habilitarlo. Esto se hace desde el panel de control de DirectAdmin, pero la ruta exacta puede variar ligeramente.

  1. Ve a la sección de "Configuración de Servicios" o "Custom Build" en DirectAdmin.
  2. Busca la opción de "Apache Configuration".
  3. Dentro, deberías ver una lista de módulos. Marca la casilla de mod_rewrite.
  4. Guarda los cambios y recompila o reconstruye Apache. Este proceso puede tardar unos minutos.

[WARNING] Recompilar Apache es una tarea más avanzada. Si no estás seguro de lo que haces, es mejor que contactes con tu proveedor de hosting y les pidas que activen mod_rewrite. Es una solicitud muy común y no deberían poner ninguna pega.

Otras causas comunes del error "AllowOverride None" en PrestaShop

A veces, el problema no es la configuración global, sino algo más específico de tu cuenta o de la estructura de carpetas.

Directorios anidados

Puede que tengas PrestaShop instalado en un subdirectorio (por ejemplo, tudominio.com/tienda). En ese caso, la directiva <Directory> que añadimos antes debe apuntar a esa subcarpeta, no a la raíz.

Además, si tienes un .htaccess en la raíz que redirige el tráfico, este también podría estar interfiriendo. Asegúrate de que la configuración de AllowOverride se aplica a la ruta correcta.

Archivos .htaccess corruptos

A veces, durante una actualización de PrestaShop o una edición manual, el archivo .htaccess se corrompe o tiene una sintaxis incorrecta, lo que provoca un error 500. Para descartarlo:

  1. Renombra el .htaccess actual a .htaccess_corrupto.
  2. Ve a tu panel de administración de PrestaShop y en Parámetros Avanzados -> Rendimiento, haz clic en el botón para "Guardar" la página. Esto forzará a PrestaShop a generar un nuevo archivo .htaccess desde cero.

Si con el nuevo archivo el error desaparece, el problema era una mala sintaxis en el archivo original.

Preguntas frecuentes (FAQ) sobre el error AllowOverride

¿Es peligroso cambiar AllowOverride None a AllowOverride All?

No, siempre y cuando se haga en el directorio de tu propio dominio y no en el directorio raíz del servidor. Esta configuración es estándar para la mayoría de las aplicaciones PHP populares como PrestaShop, WordPress o Joomla. La seguridad no se ve comprometida, ya que el .htaccess sigue siendo un archivo que tú controlas.

¿Y si mi hosting usa Syspanel en lugar de DirectAdmin?

Si tu proveedor utiliza el panel Syspanel (antes conocido como HestiaCP), el proceso es diferente. En Syspanel, la configuración se gestiona de forma más simplificada. Normalmente, la opción AllowOverride ya viene activada por defecto. Si no es así, deberás editar el archivo de configuración del VirtualHost manualmente a través de SSH, o contactar con el soporte de tu hosting. Recuerda que el acceso a Syspanel suele ser a través del puerto 2106 (ejemplo: https://tudominio.com:2106).

¿Por qué mi hosting tiene AllowOverride None si es un problema tan común?

Principalmente por rendimiento y seguridad en servidores compartidos. Al desactivar la lectura de .htaccess, Apache no tiene que comprobar cada directorio en busca de este archivo, lo que reduce la carga del servidor. Además, evita que usuarios sin conocimientos puedan introducir directivas peligrosas. Sin embargo, para aplicaciones como las tuyas, es un requisito indispensable.

Después de seguir todos los pasos, el error sigue ahí. ¿Qué hago?

Si has verificado AllowOverride All y mod_rewrite está activo, el problema puede estar en un error de configuración más profundo o en algún plugin de PrestaShop que esté generando reglas incorrectas en el .htaccess.

Te recomiendo:

  1. Desactiva temporalmente todos los módulos no oficiales para descartar conflictos.
  2. Revisa los logs de error de Apache. Puedes encontrarlos en DirectAdmin, en la sección de "Logs" o "Error Logs". El mensaje de error exacto te dará la pista definitiva.
  3. Si todo falla, contacta con tu proveedor de hosting. Diles que necesitas que la directiva AllowOverride esté establecida en All en la configuración de tu dominio para que funcione correctamente el .htaccess de PrestaShop.

Conclusión: solución definitiva al error AllowOverride

El error "AllowOverride None" en PrestaShop con DirectAdmin es un obstáculo molesto, pero se soluciona con una configuración concreta y accesible. Siguiendo los pasos que te hemos dado, podrás hacer que tu tienda funcione correctamente y disfrutar de todas las ventajas de las URLs amigables y el resto de funcionalidades que ofrece PrestaShop.

Recuerda que la clave está en permitir que Apache lea el archivo .htaccess y que el módulo mod_rewrite esté activo. Con estas dos condiciones, tu PrestaShop volverá a estar en plena forma.

[TIP] Si no te sientes seguro realizando estos cambios por tu cuenta, no dudes en contactar con el soporte técnico de tu hosting. Son cambios rutinarios para ellos y te los pueden aplicar en cuestión de minutos. Es mejor pedir ayuda que arriesgarse a romper la configuración del servidor si no tienes experiencia.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel