Redirections .htaccess Configurer des redirections 301 et règles Apache via .htaccess sur hébergement mutualisé HolyCloud. ~8 min de lecture Débutant #htaccess #apache #redirection #hebergement Redirections .htaccess Sur l'hébergement web mutualisé HolyCloud (serveur Apache), le fichier .htaccess à la racine du site (public_html) permet de définir des redirections, de forcer HTTPS et de réécrire des URLs sans accès à la configuration globale du serveur. Prérequis Hébergement mutualisé avec mod_rewrite activé (par défaut sur les offres HolyCloud) Accès File Manager ou FTP au répertoire du site Sauvegarde du .htaccess existant avant modification Accéder au fichier .htaccess Panneau cPanel → File Manager. public_html (ou dossier du domaine addon). Settings → cochez Show Hidden Files (dotfiles). Éditez .htaccess ou créez-le s'il n'existe pas. Une erreur de syntaxe peut provoquer une erreur 500 sur tout le site — gardez une copie de secours. Activer le moteur de réécriture En tête de fichier (souvent déjà présent avec WordPress) : RewriteEngine On RewriteBase / Redirection 301 : domaine sans www vers www RewriteEngine On RewriteCond %{HTTP_HOST} ^votredomaine\.fr$ [NC] RewriteRule ^(.*)$ https://www.votredomaine.fr/$1 [L,R=301] Redirection 301 : www vers apex (sans www) RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.votredomaine\.fr$ [NC] RewriteRule ^(.*)$ https://votredomaine.fr/$1 [L,R=301] Forcer HTTPS RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] Si le panneau active déjà Force HTTPS, ne dupliquez pas cette règle (risque de boucle). Rediriger une page ancienne vers une nouvelle Redirect 301 /ancienne-page.html https://www.votredomaine.fr/nouvelle-page/ Plusieurs pages : Redirect 301 /produits https://www.votredomaine.fr/boutique/ Redirect 301 /contact.php https://www.votredomaine.fr/contact/ Redirection d'un sous-dossier entier RewriteEngine On RewriteRule ^blog/(.*)$ https://www.votredomaine.fr/actualites/$1 [L,R=301] Redirection par code (RedirectMatch) Toutes les URLs .html vers sans extension (exemple) : RedirectMatch 301 ^/(.*)\.html$ https://www.votredomaine.fr/$1 Redirection temporaire 302 (maintenance) RewriteEngine On RewriteCond %{REMOTE_ADDR} !^198\.51\.100\.42$ RewriteRule ^(.*)$ https://www.votredomaine.fr/maintenance.html [L,R=302] Remplacez l'IP par la vôtre pour accéder au site réel pendant la maintenance. Bloquer l'accès à un répertoire RedirectMatch 403 ^/private/ Ou authentification basique via Directory Privacy dans le panneau (préférable pour les zones admin). Tester les redirections Depuis votre poste : curl -I https://www.votredomaine.fr/ancienne-page.html Cherchez : HTTP/1.1 301 Moved Permanently Location: https://www.votredomaine.fr/nouvelle-page/ WordPress et .htaccess WordPress régénère des blocs # BEGIN WordPress. Placez vos règles au-dessus ou en dessous selon le besoin ; en général les redirections globales se placent avant le bloc WordPress. Après changement de permaliens : Réglages → Permaliens → Enregistrer pour régénérer les règles internes. Dépannage | Symptôme | Cause | Action | |----------|-------|--------| | 500 Internal Server Error | Syntaxe Apache | Restaurer backup ; commenter lignes | | Boucle infinie | Double HTTPS/www | Une seule règle + panneau Force HTTPS | | 301 ne s'applique pas | Cache CDN/navigateur | Purger cache Cloudflare ; curl -I | | 404 après redirect | Cible inexistante | Vérifier URL cible | Bonnes pratiques SEO Utilisez 301 pour les changements permanents d'URL. Évitez les chaînes de redirections (A→B→C) ; redirigez directement vers la cible finale. Mettez à jour les liens internes dans le CMS, pas seulement .htaccess. Besoin d'aide ? Joignez le contenu actuel de .htaccess (sans mots de passe) et l'URL source/cible attendue au ticket support. Suite de la lecture Article précédent Limites CPU/RAM/I/O mutualisé Lire Article suivant Sauvegarder un site (cPanel) Lire