Comment changer l'URL d'administration de votre PrestaShop
Pourquoi vous devriez changer l'URL d'administration par défaut
Chaque installation PrestaShop crée un répertoire d'administration avec un nom comme admin1234 — les chiffres sont générés aléatoirement lors de l'installation. Ce répertoire est l'endroit où vous accédez au back office de votre boutique. Bien que le suffixe aléatoire offre une obscurité basique, ce n'est pas une mesure de sécurité robuste. Les bots automatisés et les attaquants scannent régulièrement les schémas d'URL d'administration courants sur des milliers de sites web. Changer votre URL d'administration en quelque chose d'imprévisible ajoute une couche de défense significative.
La raison principale de changer le nom du dossier d'administration est de réduire l'exposition aux attaques par force brute. Si un attaquant ne peut pas trouver votre page de connexion, il ne peut pas tenter de deviner votre mot de passe. Ce n'est pas un substitut aux mots de passe forts et autres mesures de sécurité, mais c'est une première étape efficace qui ne coûte rien et ne prend que quelques minutes à mettre en place.
De plus, une URL d'administration personnalisée donne un aspect plus professionnel à votre boutique si des employés ou des clients doivent accéder au back office. Une URL comme votredomaine.com/gestion-boutique/ est plus facile à retenir et à communiquer que votredomaine.com/admin7382pqxz/.
Comment fonctionnent les URL d'administration PrestaShop
Le répertoire d'administration de PrestaShop est un dossier physique sur votre serveur. Lorsque vous tapez votredomaine.com/admin1234/ dans votre navigateur, le serveur web cherche le répertoire admin1234 et sert le fichier index.php qu'il contient. Cela signifie que changer l'URL d'administration consiste principalement à renommer le répertoire sur le système de fichiers de votre serveur.
À l'intérieur du répertoire d'administration, PrestaShop stocke les fichiers de contrôleurs, les fichiers de templates et la configuration qui référence le chemin d'administration. Dans PrestaShop 1.7 et 8.x, le répertoire d'administration contient également des composants de routage Symfony. La configuration interne stocke le nom du répertoire d'administration dans le fichier app/config/parameters.php (ou config/parameters.php sur les versions plus anciennes) sous la clé ps_admin_dir. Cette valeur doit correspondre au nom réel du répertoire pour que le back office fonctionne correctement.
Étape par étape : Renommer le répertoire d'administration
Méthode 1 : Via FTP ou gestionnaire de fichiers
C'est la méthode la plus sûre et la plus simple. Elle fonctionne sur tous les types d'hébergement et toutes les versions de PrestaShop de la 1.6 à la 8.x et 9.x.
- Connectez-vous à votre serveur via FTP (FileZilla, WinSCP) ou utilisez le gestionnaire de fichiers du panneau de contrôle de votre hébergement (cPanel, Plesk).
- Naviguez jusqu'au répertoire racine de votre PrestaShop — c'est là où vous voyez des dossiers comme
classes/,modules/,themes/, et votre dossier d'administration actuel. - Identifiez votre dossier d'administration actuel. Il sera nommé quelque chose comme
admin1234ouadmin-dev(sur les installations de développement). Ne le confondez pas avec le dossieradmin-dev/si vous avez la version code source installée. - Renommez le dossier avec le nom de votre choix. Faites un clic droit sur le dossier dans votre client FTP et sélectionnez « Renommer ». Choisissez un nom difficile à deviner mais facile à retenir pour vous. Bons exemples :
manage-xyz,backoffice-abc,control-2024. Évitez les noms évidents commeadmin,administrator,backend,dashboard, oumanage. - Mettez à jour le fichier de configuration. Ouvrez
app/config/parameters.phpdans un éditeur de texte et trouvez la ligne contenantps_admin_dir. Changez la valeur pour qu'elle corresponde exactement au nom de votre nouveau répertoire. - Videz le cache. Supprimez le contenu de
var/cache/prod/etvar/cache/dev/(s'il existe). L'ancien cache contient des références au nom précédent du répertoire d'administration. - Testez la nouvelle URL. Ouvrez votre navigateur et accédez à
votredomaine.com/votre-nouveau-nom-admin/. Vous devriez voir la page de connexion PrestaShop.
Méthode 2 : Via SSH (ligne de commande)
Si vous avez un accès SSH à votre serveur, vous pouvez renommer le répertoire avec une seule commande :
cd /var/www/html/prestashop
mv admin1234 votre-nouveau-nomPuis mettez à jour la configuration :
sed -i "s/admin1234/votre-nouveau-nom/g" app/config/parameters.phpEt videz le cache :
rm -rf var/cache/prod/* var/cache/dev/*Cette méthode est plus rapide et moins sujette aux erreurs que l'utilisation du FTP, surtout si le nom du répertoire apparaît à plusieurs endroits dans le fichier de configuration.
Différences entre les versions de PrestaShop
PrestaShop 1.6
Dans PrestaShop 1.6, le nom du répertoire d'administration est stocké dans config/settings.inc.php plutôt que dans app/config/parameters.php. Cherchez une ligne comme :
define('_PS_ADMIN_DIR_', '/var/www/html/prestashop/admin1234');Changez le chemin pour qu'il corresponde au nom de votre nouveau répertoire. La structure du répertoire app/ n'existe pas dans la 1.6 car elle précède l'intégration de Symfony. Pour le reste, le processus de renommage du répertoire est identique.
PrestaShop 1.7
PrestaShop 1.7 a introduit le framework Symfony, qui a ajouté le fichier app/config/parameters.php. Cependant, la 1.7 maintient toujours une compatibilité ascendante avec certains routages d'administration historiques. Après le renommage, videz à la fois le cache Smarty (var/cache/) et le cache Symfony. Le nom du répertoire d'administration est stocké dans parameters.php sous le tableau parameters :
'parameters' => array(
// ...
'ps_admin_dir' => 'votre-nouveau-nom',
// ...
)PrestaShop 8.x
PrestaShop 8.x poursuit l'architecture de la 1.7 avec une intégration Symfony plus poussée. Le processus est le même que pour la 1.7, mais le fichier parameters.php peut utiliser la configuration basée sur YAML de Symfony dans certaines configurations. Vérifiez à la fois app/config/parameters.php et app/config/parameters.yml s'il est présent. Après le renommage, videz toujours le cache complètement.
PrestaShop 9.x
PrestaShop 9.x affine davantage l'intégration Symfony. Le concept de répertoire d'administration demeure, mais le routage repose davantage sur Symfony. Le fichier parameters.php ou parameters.yml contient toujours la référence au répertoire d'administration. Le processus de renommage est inchangé, mais prêtez une attention particulière au vidage de toutes les couches de cache, car le cache de routage Symfony est plus agressif dans la 9.x.
Mise à jour du .htaccess après le renommage
Dans la plupart des cas, vous n'avez pas besoin de modifier le fichier .htaccess dans le répertoire racine de votre PrestaShop après avoir renommé le dossier d'administration. Les règles .htaccess de PrestaShop ne référencent généralement pas le répertoire d'administration par son nom. Les règles de réécriture gèrent le front office (les URLs côté client), et le répertoire d'administration est accessible directement sans réécriture.
Cependant, il existe des exceptions. Si vous avez ajouté des règles de sécurité personnalisées au .htaccess qui référencent l'ancien nom du répertoire d'administration, vous devez mettre à jour ces règles. Par exemple, si vous avez précédemment ajouté une liste blanche d'adresses IP pour la zone d'administration :
# Ancienne règle
<Directory /var/www/html/prestashop/admin1234>
Order Deny,Allow
Deny from all
Allow from 203.0.113.50
</Directory>Cela doit être mis à jour pour référencer le nouveau nom du répertoire. De même, vérifiez les plugins de sécurité (comme les règles mod_security) ou les configurations CDN (règles de page Cloudflare) qui pourraient référencer l'ancien chemin d'administration.
Vérifiez également le fichier .htaccess à l'intérieur du répertoire d'administration lui-même. PrestaShop y place un fichier pour le routage interne. Ce fichier n'a généralement pas besoin de modification car il utilise des chemins relatifs, mais vérifiez-le après le renommage pour vous assurer que rien n'est cassé.
Pièges courants et ce qu'il ne faut PAS faire
N'utilisez pas de liens symboliques comme raccourci
Certains administrateurs créent un lien symbolique d'un nouveau nom vers l'ancien répertoire d'administration au lieu de le renommer réellement. Cela rend la démarche totalement inutile car l'ancien répertoire existe toujours et est accessible. Effectuez toujours un vrai renommage, pas un lien symbolique.
N'oubliez pas de mettre à jour parameters.php
L'erreur la plus courante est de renommer le répertoire tout en oubliant de mettre à jour le fichier de configuration. Lorsque cela arrive, vous verrez une page blanche ou une erreur 500 en essayant d'accéder au panneau d'administration. PrestaShop référence internement le nom du répertoire d'administration depuis la configuration, et une incohérence provoque un échec immédiat.
Ne choisissez pas de noms évidents
Renommer votre répertoire d'administration de admin1234 en admin ou administrator est contre-productif. Les scanners automatisés vérifient ces noms évidents en premier. Choisissez quelque chose qui combine des mots et des chiffres d'une manière difficilement devinable : store-mgmt-7x9, bo-access-42, ou même une chaîne complètement aléatoire comme kx9m4p2q.
Ne renommez pas pendant que des utilisateurs sont connectés
Les sessions actives du back office seront immédiatement interrompues lorsque vous renommerez le répertoire. Tout utilisateur administrateur actuellement connecté verra une erreur et perdra le travail non sauvegardé. Effectuez le renommage pendant une période de faible trafic et prévenez tout le personnel qui utilise le back office.
N'oubliez pas les favoris et les liens sauvegardés
Après le renommage, mettez à jour tous les favoris, mots de passe enregistrés dans le navigateur, entrées du gestionnaire de mots de passe et la documentation qui référencent l'ancienne URL d'administration. Informez tous les membres du personnel qui accèdent au back office de la nouvelle URL.
N'utilisez pas de caractères spéciaux ou d'espaces
Le nom du répertoire d'administration doit être un composant de chemin URL valide. Utilisez uniquement des lettres minuscules, des chiffres et des tirets. Évitez les espaces, les underscores (bien qu'ils fonctionnent, les tirets sont plus propres), les caractères accentués et tout caractère spécial.
Conflits de modules et considérations tierces
La plupart des modules PrestaShop bien écrits utilisent les fonctions internes de PrestaShop pour déterminer le chemin du répertoire d'administration plutôt que de le coder en dur. Ces modules continueront à fonctionner après le renommage sans aucune intervention. Cependant, certains modules mal codés peuvent coder en dur le chemin d'administration dans leurs fichiers de configuration, leur JavaScript ou leurs endpoints AJAX.
Après avoir renommé votre répertoire d'administration, testez les éléments suivants dans votre back office :
- Tous les modules installés — ouvrez la page de configuration de chaque module
- Tout module utilisant des appels AJAX (vérifiez la console du navigateur pour les erreurs 404)
- Les callbacks et webhooks des modules de paiement
- Toute intégration personnalisée ou connexion ERP qui référence l'URL d'administration
- Les tâches cron qui appellent des fichiers côté administration
Si un module cesse de fonctionner après le renommage, vérifiez ses fichiers de configuration pour les chemins d'administration codés en dur. De nombreux modules stockent leurs paramètres dans la table de base de données ps_configuration, et certaines de ces valeurs peuvent contenir l'ancien nom du répertoire d'administration.
Pour rechercher dans votre base de données les références à l'ancien répertoire d'administration :
SELECT * FROM ps_configuration WHERE value LIKE '%admin1234%';Remplacez admin1234 par votre ancien nom de répertoire et ps_ par votre préfixe de base de données réel.
Mesures de sécurité supplémentaires pour la zone d'administration
Renommer le répertoire d'administration est une bonne première étape, mais cela devrait faire partie d'une stratégie de sécurité globale. Considérez ces mesures supplémentaires :
Liste blanche d'adresses IP
Si vous et votre équipe accédez toujours au back office depuis des adresses IP fixes, vous pouvez restreindre l'accès au niveau du serveur web. Pour Apache, ajoutez au .htaccess de votre répertoire d'administration :
Order Deny,Allow
Deny from all
Allow from 203.0.113.50
Allow from 198.51.100.25Pour Nginx, ajoutez à votre bloc serveur :
location /votre-nom-admin/ {
allow 203.0.113.50;
allow 198.51.100.25;
deny all;
}C'est extrêmement efficace car même si un attaquant découvre votre URL d'administration, il ne peut pas accéder à la page de connexion depuis une adresse IP non autorisée.
Authentification à deux facteurs (2FA)
PrestaShop 8.x n'inclut pas de 2FA intégrée, mais plusieurs modules offrent cette fonctionnalité. L'authentification à deux facteurs requiert une seconde étape de vérification (généralement un code provenant d'une application mobile comme Google Authenticator) en plus du mot de passe. Cela rend les attaques par force brute essentiellement impossibles même si l'attaquant connaît à la fois l'URL d'administration et le mot de passe.
Certificat SSL/TLS
Accédez toujours à votre panneau d'administration via HTTPS. Cela chiffre les identifiants de connexion en transit, empêchant les attaques de type man-in-the-middle. La plupart des hébergeurs offrent des certificats SSL gratuits via Let's Encrypt. Le back office de PrestaShop devrait être configuré pour forcer le SSL dans Paramètres de la boutique > Général > Activer le SSL et Activer le SSL sur toutes les pages.
Limitation des tentatives de connexion
PrestaShop inclut une protection basique contre la force brute qui bloque les adresses IP après un certain nombre de tentatives de connexion échouées. Assurez-vous que cela est activé dans vos paramètres de sécurité. Vous pouvez également implémenter une limitation de débit au niveau du serveur web en utilisant des modules comme mod_evasive pour Apache ou limit_req pour Nginx.
Rotation régulière des mots de passe
Assurez-vous que tous les comptes administrateur utilisent des mots de passe forts et uniques. Un bon mot de passe fait au moins 16 caractères et inclut un mélange de lettres, chiffres et symboles. Utilisez un gestionnaire de mots de passe pour générer et stocker ces mots de passe. Changez les mots de passe périodiquement, surtout lorsqu'un employé quitte l'entreprise ou qu'un incident de sécurité survient.
Audit des comptes administrateur
Vérifiez régulièrement la liste des comptes administrateur dans Paramètres avancés > Équipe > Employés. Supprimez ou désactivez les comptes des employés qui n'ont plus besoin d'accès. Chaque personne devrait avoir son propre compte plutôt que de partager des identifiants, ce qui permet de suivre qui a effectué quelles modifications.
Que faire si vous perdez l'accès
Si vous renommez le répertoire d'administration et ne pouvez plus accéder au back office, ne paniquez pas. Connectez-vous à votre serveur via FTP ou SSH et soit renommez le répertoire à son nom original, soit vérifiez le fichier parameters.php pour vous assurer que le nom du répertoire correspond. Si vous avez perdu la trace à la fois du nom du répertoire et de la configuration, regardez la liste réelle des répertoires sur votre serveur — le répertoire d'administration est celui qui contient des fichiers comme ajax-tab.php, init.php, et un sous-répertoire themes/ avec le thème du back office.
Vous pouvez également trouver le nom du répertoire d'administration dans la base de données :
SELECT value FROM ps_configuration WHERE name = 'PS_ADMIN_DIR';Cependant, notez que toutes les versions de PrestaShop ne stockent pas cette valeur dans la table de configuration. Le fichier parameters.php est la source faisant autorité.
Automatiser les changements d'URL d'administration avec un outil
Si vous gérez plusieurs installations PrestaShop, vous pouvez créer un simple outil shell pour automatiser le processus de renommage :
#!/bin/bash
OLD_NAME="$1"
NEW_NAME="$2"
PS_ROOT="/var/www/html/prestashop"
if [ -z "$OLD_NAME" ] || [ -z "$NEW_NAME" ]; then
echo "Usage: $0 ancien-nom-admin nouveau-nom-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 "Répertoire admin renommé de $OLD_NAME en $NEW_NAME"
echo "Veuillez vérifier l'accès à : votredomaine.com/$NEW_NAME/"Sauvegardez ceci sous le nom rename-admin.sh, rendez-le exécutable avec chmod +x rename-admin.sh, et exécutez-le avec l'ancien et le nouveau nom du répertoire comme arguments. Testez toujours la nouvelle URL immédiatement après l'exécution de l'outil.
En suivant ces étapes et en combinant le changement d'URL d'administration avec des mesures de sécurité supplémentaires, vous réduisez considérablement la surface d'attaque du back office de votre boutique PrestaShop.
Cette réponse vous a-t-elle été utile ?
Vous avez encore des questions ?
Can't find what you're looking for? Send us your question and we'll get back to you quickly.