Cómo Cambiar la URL del Admin de PrestaShop

393 vistas

Por Qué Deberías Cambiar la URL Admin Predeterminada

Cada instalación de PrestaShop crea un directorio admin con un nombre como admin1234 — los dígitos se generan aleatoriamente durante la instalación. Este directorio es donde accedes al back office de tu tienda. Aunque el sufijo aleatorio proporciona cierta oscuridad básica, no es una medida de seguridad robusta. Bots automatizados y atacantes escanean rutinariamente patrones comunes de URL admin en miles de sitios web. Cambiar tu URL admin por algo impredecible añade una capa significativa de defensa.

La razón principal para cambiar el nombre de la carpeta admin es reducir la exposición a ataques de fuerza bruta. Si un atacante no puede encontrar tu página de inicio de sesión, no puede intentar adivinar tu contraseña. Esto no reemplaza las contraseñas seguras y otras medidas de seguridad, pero es un primer paso efectivo que no cuesta nada y solo toma unos minutos de implementar.

Además, una URL admin personalizada hace que tu tienda se vea más profesional si empleados o clientes necesitan acceder al back office. Una URL como tudominio.com/gestionar-tienda/ es más fácil de recordar y comunicar que tudominio.com/admin7382pqxz/.

Cómo Funcionan las URL Admin de PrestaShop

El directorio admin de PrestaShop es una carpeta física en tu servidor. Cuando escribes tudominio.com/admin1234/ en tu navegador, el servidor web busca el directorio admin1234 y sirve el archivo index.php que contiene. Esto significa que cambiar la URL admin es principalmente cuestión de renombrar el directorio en el sistema de archivos del servidor.

Dentro del directorio admin, PrestaShop almacena archivos de controladores, archivos de plantillas y configuración que hacen referencia a la ruta admin. En PrestaShop 1.7 y 8.x, el directorio admin también contiene componentes de enrutamiento de Symfony. La configuración interna almacena el nombre del directorio admin en el archivo app/config/parameters.php (o config/parameters.php en versiones anteriores) bajo la clave ps_admin_dir. Este valor debe coincidir con el nombre real del directorio para que el back office funcione correctamente.

Paso a Paso: Renombrar el Directorio Admin

Método 1: Vía FTP o Administrador de Archivos

Este es el método más seguro y directo. Funciona en todos los tipos de hosting y todas las versiones de PrestaShop desde la 1.6 hasta la 8.x y 9.x.

  1. Conéctate a tu servidor vía FTP (FileZilla, WinSCP) o usa el administrador de archivos del panel de control de tu hosting (cPanel, Plesk).
  2. Navega al directorio raíz de PrestaShop — es donde ves carpetas como classes/, modules/, themes/ y tu carpeta admin actual.
  3. Identifica tu carpeta admin actual. Tendrá un nombre como admin1234 o admin-dev (en instalaciones de desarrollo). No la confundas con la carpeta admin-dev/ si tienes la versión con código fuente instalada.
  4. Renombra la carpeta al nombre deseado. Haz clic derecho en la carpeta en tu cliente FTP y selecciona "Renombrar". Elige un nombre difícil de adivinar pero fácil de recordar. Buenos ejemplos: manage-xyz, backoffice-abc, control-2024. Evita nombres obvios como admin, administrator, backend, dashboard o manage.
  5. Actualiza el archivo de configuración. Abre app/config/parameters.php en un editor de texto y encuentra la línea que contiene ps_admin_dir. Cambia el valor para que coincida exactamente con el nuevo nombre del directorio.
  6. Vacía la caché. Elimina el contenido de var/cache/prod/ y var/cache/dev/ (si existe). La caché antigua contiene referencias al nombre del directorio admin anterior.
  7. Prueba la nueva URL. Abre tu navegador y navega a tudominio.com/tu-nuevo-nombre-admin/. Deberías ver la página de inicio de sesión de PrestaShop.

Método 2: Vía SSH (Línea de Comandos)

Si tienes acceso SSH a tu servidor, puedes renombrar el directorio con un solo comando:

cd /var/www/html/prestashop
mv admin1234 tu-nuevo-nombre

Luego actualiza la configuración:

sed -i "s/admin1234/tu-nuevo-nombre/g" app/config/parameters.php

Y vacía la caché:

rm -rf var/cache/prod/* var/cache/dev/*

Este método es más rápido y menos propenso a errores que usar FTP, especialmente si el nombre del directorio aparece en múltiples lugares del archivo de configuración.

Diferencias Entre las Versiones de PrestaShop

PrestaShop 1.6

En PrestaShop 1.6, el nombre del directorio admin se almacena en config/settings.inc.php en lugar de app/config/parameters.php. Busca una línea como:

define('_PS_ADMIN_DIR_', '/var/www/html/prestashop/admin1234');

Cambia la ruta para que coincida con el nuevo nombre del directorio. La estructura del directorio app/ no existe en la 1.6 porque es anterior a la integración con Symfony. Por lo demás, el proceso de renombrar el directorio es idéntico.

PrestaShop 1.7

PrestaShop 1.7 introdujo el framework Symfony, añadiendo el archivo app/config/parameters.php. Sin embargo, la 1.7 aún mantiene compatibilidad retroactiva con el enrutamiento admin legacy. Después de renombrar, vacía tanto la caché de Smarty (var/cache/) como la caché de Symfony. El nombre del directorio admin se almacena en parameters.php dentro del array parameters:

'parameters' => array(
    // ...
    'ps_admin_dir' => 'tu-nuevo-nombre',
    // ...
)

PrestaShop 8.x

PrestaShop 8.x continúa la arquitectura de la 1.7 con una integración de Symfony más profunda. El proceso es el mismo que en la 1.7, pero el archivo parameters.php puede usar la configuración basada en YAML de Symfony en algunas configuraciones. Verifica tanto app/config/parameters.php como app/config/parameters.yml si está presente. Después de renombrar, siempre vacía la caché completamente.

PrestaShop 9.x

PrestaShop 9.x refina aún más la integración con Symfony. El concepto de directorio admin permanece, pero el enrutamiento está más basado en Symfony. El archivo parameters.php o parameters.yml aún contiene la referencia al directorio admin. El proceso de renombrar no cambia, pero presta especial atención a vaciar todos los niveles de caché, ya que la caché de enrutamiento de Symfony es más agresiva en la 9.x.

Actualización de .htaccess Después de Renombrar

En la mayoría de los casos, no necesitas modificar el archivo .htaccess en el directorio raíz de PrestaShop después de renombrar la carpeta admin. Las reglas .htaccess de PrestaShop típicamente no hacen referencia al directorio admin por nombre. Las reglas de reescritura manejan el front office (URLs de cara al cliente), y el directorio admin se accede directamente sin reescritura.

Sin embargo, hay excepciones. Si has añadido reglas de seguridad personalizadas al .htaccess que hacen referencia al antiguo nombre del directorio admin, debes actualizar esas reglas. Por ejemplo, si previamente añadiste listas blancas de IP para el área admin:

# Regla antigua
<Directory /var/www/html/prestashop/admin1234>
    Order Deny,Allow
    Deny from all
    Allow from 203.0.113.50
</Directory>

Esta debe actualizarse para hacer referencia al nuevo nombre del directorio. Del mismo modo, verifica cualquier plugin de seguridad (como las reglas de mod_security) o configuraciones CDN (reglas de página de Cloudflare) que puedan hacer referencia a la antigua ruta admin.

También verifica el archivo .htaccess dentro del directorio admin mismo. PrestaShop coloca uno allí para el enrutamiento interno. Este archivo generalmente no necesita modificación porque usa rutas relativas, pero verifícalo después de renombrar para asegurarte de que nada esté roto.

Errores Comunes y Qué NO Hacer

No Uses Symlinks como Atajo

Algunos administradores crean un enlace simbólico desde un nuevo nombre al antiguo directorio admin en lugar de renombrarlo realmente. Esto anula completamente el propósito porque el directorio antiguo sigue existiendo y es accesible. Siempre realiza un renombrado real, no un symlink.

No Olvides Actualizar parameters.php

El error más común es renombrar el directorio pero olvidar actualizar el archivo de configuración. Cuando esto sucede, verás una página en blanco o un error 500 al intentar acceder al panel admin. PrestaShop internamente hace referencia al nombre del directorio admin desde la configuración, y una discrepancia causa un fallo inmediato.

No Elijas Nombres Obvios

Renombrar tu directorio admin de admin1234 a admin o administrator es contraproducente. Los escáneres automatizados verifican estos nombres obvios primero. Elige algo que combine palabras y números de una manera que no sea fácilmente adivinable: store-mgmt-7x9, bo-access-42, o incluso una cadena completamente aleatoria como kx9m4p2q.

No Renombres Mientras los Usuarios Están Conectados

Las sesiones activas del back office se interrumpirán inmediatamente cuando renombres el directorio. Cualquier usuario admin actualmente conectado verá un error y perderá el trabajo no guardado. Realiza el renombrado durante un período de bajo tráfico y notifica a cualquier miembro del personal que use el back office.

No Olvides los Marcadores y Enlaces Guardados

Después de renombrar, actualiza todos los marcadores, contraseñas guardadas del navegador, entradas del administrador de contraseñas y documentación que hagan referencia a la antigua URL admin. Notifica a todos los miembros del personal que acceden al back office sobre la nueva URL.

No Uses Caracteres Especiales ni Espacios

El nombre del directorio admin debe ser un componente de ruta URL válido. Usa solo letras minúsculas, números y guiones. Evita espacios, guiones bajos (aunque funcionan, los guiones son más limpios), caracteres acentuados y cualquier carácter especial.

Conflictos de Módulos y Consideraciones de Terceros

La mayoría de los módulos PrestaShop bien escritos usan las funciones internas de PrestaShop para determinar la ruta del directorio admin en lugar de codificarla directamente. Estos módulos continuarán funcionando después del renombrado sin ninguna intervención. Sin embargo, algunos módulos mal codificados pueden codificar directamente la ruta admin en sus archivos de configuración, JavaScript o endpoints AJAX.

Después de renombrar tu directorio admin, prueba lo siguiente en tu back office:

  • Todos los módulos instalados — abre la página de configuración de cada módulo
  • Cualquier módulo que use llamadas AJAX (verifica la consola del navegador para errores 404)
  • Callbacks y webhooks de módulos de pago
  • Cualquier integración personalizada o conexión ERP que haga referencia a la URL admin
  • Trabajos cron que llamen a scripts del lado admin

Si un módulo deja de funcionar después del renombrado, verifica sus archivos de configuración para rutas admin codificadas directamente. Muchos módulos almacenan sus configuraciones en la tabla de base de datos ps_configuration, y algunos de estos valores pueden contener el antiguo nombre del directorio admin.

Para buscar en tu base de datos referencias al antiguo directorio admin:

SELECT * FROM ps_configuration WHERE value LIKE '%admin1234%';

Reemplaza admin1234 con tu antiguo nombre de directorio y ps_ con tu prefijo de base de datos real.

Medidas de Seguridad Adicionales para el Área Admin

Renombrar el directorio admin es un buen primer paso, pero debería ser parte de una estrategia de seguridad integral. Considera estas medidas adicionales:

Lista Blanca de Direcciones IP

Si tú y tu equipo siempre acceden al back office desde direcciones IP fijas, puedes restringir el acceso a nivel del servidor web. Para Apache, añade al .htaccess de tu directorio admin:

Order Deny,Allow
Deny from all
Allow from 203.0.113.50
Allow from 198.51.100.25

Para Nginx, añade a tu bloque server:

location /tu-nombre-admin/ {
    allow 203.0.113.50;
    allow 198.51.100.25;
    deny all;
}

Esto es extremadamente efectivo porque incluso si un atacante descubre tu URL admin, no puede acceder a la página de inicio de sesión desde una dirección IP no autorizada.

Autenticación de Dos Factores (2FA)

PrestaShop 8.x no incluye 2FA integrado, pero varios módulos proporcionan esta funcionalidad. La autenticación de dos factores requiere un segundo paso de verificación (típicamente un código de una aplicación móvil como Google Authenticator) además de la contraseña. Esto hace que los ataques de fuerza bruta sean esencialmente imposibles incluso si el atacante conoce tanto la URL admin como la contraseña.

Certificado SSL/TLS

Siempre accede a tu panel admin a través de HTTPS. Esto cifra las credenciales de inicio de sesión en tránsito, previniendo ataques man-in-the-middle. La mayoría de los proveedores de hosting ofrecen certificados SSL gratuitos a través de Let's Encrypt. El back office de PrestaShop debería estar configurado para forzar SSL en Parámetros de la Tienda > General > Habilitar SSL y Habilitar SSL en todas las páginas.

Limitación de Intentos de Inicio de Sesión

PrestaShop incluye una protección básica contra fuerza bruta que bloquea direcciones IP después de un cierto número de intentos de inicio de sesión fallidos. Asegúrate de que esté habilitada en tu configuración de seguridad. También puedes implementar limitación de velocidad a nivel del servidor web usando módulos como mod_evasive para Apache o limit_req para Nginx.

Rotación Regular de Contraseñas

Asegúrate de que todas las cuentas admin usen contraseñas seguras y únicas. Una buena contraseña tiene al menos 16 caracteres e incluye una mezcla de letras, números y símbolos. Usa un administrador de contraseñas para generar y almacenar estas contraseñas. Rota las contraseñas periódicamente, especialmente cuando un empleado deja la empresa o cuando ocurre un incidente de seguridad.

Auditoría de Cuentas Admin

Revisa regularmente la lista de cuentas admin en Parámetros Avanzados > Equipo > Empleados. Elimina o desactiva las cuentas de empleados que ya no necesitan acceso. Cada persona debería tener su propia cuenta en lugar de compartir credenciales, lo que hace posible rastrear quién hizo qué cambios.

Qué Hacer Si Pierdes el Acceso

Si renombras el directorio admin y no puedes acceder al back office, no entres en pánico. Conéctate a tu servidor vía FTP o SSH y renombra el directorio de vuelta a su nombre original o verifica el archivo parameters.php para asegurarte de que el nombre del directorio coincida. Si has perdido la pista tanto del nombre del directorio como de la configuración, mira el listado real de directorios en tu servidor — el directorio admin es el que contiene archivos como ajax-tab.php, init.php y un subdirectorio themes/ con el tema del back office.

También puedes encontrar el nombre del directorio admin en la base de datos:

SELECT value FROM ps_configuration WHERE name = 'PS_ADMIN_DIR';

Sin embargo, ten en cuenta que no todas las versiones de PrestaShop almacenan este valor en la tabla de configuración. El archivo parameters.php es la fuente autorizada.

Automatizar los Cambios de URL Admin con un Script

Si gestionas múltiples instalaciones de PrestaShop, puedes crear un sencillo script shell para automatizar el proceso de renombrado:

#!/bin/bash
OLD_NAME="$1"
NEW_NAME="$2"
PS_ROOT="/var/www/html/prestashop"

if [ -z "$OLD_NAME" ] || [ -z "$NEW_NAME" ]; then
    echo "Uso: $0 antiguo-nombre-admin nuevo-nombre-admin"
    exit 1
fi

mv "$PS_ROOT/$OLD_NAME" "$PS_ROOT/$NEW_NAME"
sed -i "s/$OLD_NAME/$NEW_NAME/g" "$PS_ROOT/app/config/parameters.php"
rm -rf "$PS_ROOT/var/cache/prod/*" "$PS_ROOT/var/cache/dev/*"
echo "Directorio admin renombrado de $OLD_NAME a $NEW_NAME"
echo "Por favor verifica el acceso en: tudominio.com/$NEW_NAME/"

Guarda esto como rename-admin.sh, hazlo ejecutable con chmod +x rename-admin.sh y ejecútalo con los nombres antiguo y nuevo del directorio como argumentos. Siempre prueba la nueva URL inmediatamente después de ejecutar la herramienta.

Siguiendo estos pasos y combinando el cambio de URL admin con medidas de seguridad adicionales, reduces significativamente la superficie de ataque del back office de tu tienda PrestaShop.

¿Le resultó útil esta respuesta?

¿Aún tiene preguntas?

Can't find what you're looking for? Send us your question and we'll get back to you quickly.

Cargando...
Volver arriba