Retourner sur le site

Redirections .htaccess

Configurer des redirections 301 et règles Apache via .htaccess sur hébergement mutualisé HolyCloud.

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

  1. Panneau cPanel → File Manager.
  2. public_html (ou dossier du domaine addon).
  3. Settings → cochez Show Hidden Files (dotfiles).
  4. É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.