====== HTTP Authentication ====== L'authentification HTTP (ou HTTP Basic Authentication) n'entre pas directement en conflit avec YunoHost ou WordPress lui-même, mais elle peut poser des problèmes de compatibilité ou d'accès selon la manière dont elle est configurée. Voici ce que tu dois savoir pour éviter les conflits et bien configurer l'authentification HTTP avec YunoHost et WordPress : 1. Qu'est-ce que l'authentification HTTP ? L'authentification HTTP est une méthode simple pour protéger l'accès à un site ou à une partie d'un site en demandant un nom d'utilisateur et un mot de passe. Elle est souvent utilisée pour : Protéger un site en développement. Restreindre l'accès à une zone spécifique (ex: un répertoire /wp-admin). 2. Compatibilité avec YunoHost YunoHost est une solution d'auto-hébergement qui utilise Nginx comme serveur web (au lieu d'Apache). L'authentification HTTP peut être configurée sur Nginx, mais il faut le faire manuellement. Comment configurer l'authentification HTTP sur YunoHost ? Crée un fichier de mot de passe : Connecte-toi à ton serveur YunoHost en SSH. Utilise la commande suivante pour créer un fichier .htpasswd (même si on utilise Nginx, le format est le même) : sudo htpasswd -c /etc/nginx/.htpasswd nom_utilisateur (Remplace nom_utilisateur par le nom d'utilisateur souhaité. Tu seras invité à entrer un mot de passe.) Configure Nginx : Édite le fichier de configuration de ton site WordPress dans Nginx. Sur YunoHost, les configurations des applications web se trouvent généralement dans /etc/nginx/conf.d/. Cherche le fichier correspondant à ton domaine (ex: ton-domaine.conf). Ajoute les lignes suivantes dans la section server ou location que tu veux protéger : auth_basic "Zone protégée"; auth_basic_user_file /etc/nginx/.htpasswd; Exemple pour protéger /wp-admin : location /wp-admin { auth_basic "Accès restreint"; auth_basic_user_file /etc/nginx/.htpasswd; } Redémarre Nginx : sudo systemctl restart nginx 3. Compatibilité avec WordPress L'authentification HTTP ne pose généralement pas de problème avec WordPress, mais il y a quelques points à vérifier : A. Problèmes potentiels Conflit avec les cookies de session : Si l'authentification HTTP est activée sur /wp-admin, certains plugins ou fonctionnalités de WordPress (comme l'éditeur Gutenberg ou les requêtes AJAX) peuvent ne pas fonctionner correctement. Problèmes de cache : Si tu utilises un plugin de cache, assure-toi qu'il ne met pas en cache les pages protégées par HTTP Authentication. B. Solutions Exclure certains chemins : Si tu protèges /wp-admin, assure-toi que les requêtes AJAX (comme /wp-admin/admin-ajax.php) ne sont pas bloquées. Tu peux ajouter une exception dans la configuration Nginx : location /wp-admin { auth_basic "Accès restreint"; auth_basic_user_file /etc/nginx/.htpasswd; # Exclure admin-ajax.php location ~ ^/wp-admin/admin-ajax\.php$ { auth_basic off; } } Utiliser un plugin WordPress : Si tu veux éviter les conflits, utilise un plugin comme Password Protected pour protéger ton site au lieu de l'authentification HTTP. 4. Problèmes courants et solutions L'authentification ne fonctionne pasVérifie que le fichier .htpasswd est au bon endroit et que Nginx est redémarré.WordPress ne charge pas correctementExclure admin-ajax.php ou désactiver l'authentification HTTP pour /wp-admin.Problèmes de cacheDésactive le cache pour les pages protégées ou configure ton plugin de cache pour ignorer ces pages. 5. Alternative : Utiliser un plugin WordPress Si tu veux éviter les complications liées à l'authentification HTTP, tu peux utiliser un plugin WordPress pour protéger ton site : Password Protected : Protège l'ensemble du site avec un mot de passe. WP Cerber Security : Permet de restreindre l'accès à certaines zones du site. Résumé L'authentification HTTP fonctionne avec YunoHost et WordPress, mais elle doit être configurée correctement dans Nginx. Évite de protéger /wp-admin sans exclure admin-ajax.php, sinon certaines fonctionnalités de WordPress peuvent ne pas fonctionner. Si tu rencontres des problèmes, utilise un plugin WordPress pour protéger ton site.