Générateur de redirection Htaccess

Chaque fois que vous migrez un blog, changez votre schéma d’URL ou consolidez d’anciennes pages, le .htaccess d’Apache prend en charge le nettoyage. Ce générateur transforme un simple mappage source → cible en les directives RewriteRule correctes avec les bons drapeaux, prêtes à être ajoutées au fichier .htaccess du site.

Comment générer des règles de redirection

  1. 1

    Choisissez le type de redirection

    301 permanent pour des mouvements sûrs pour le SEO, 302 temporaire pour des tests A/B et des redirections saisonnières.

  2. 2

    Entrez la source et la cible

    Chemins exacts ou motifs regex : l'ancien chemin devient le motif RewriteRule et la nouvelle URL la cible de redirection.

  3. 3

    Vérifiez les drapeaux

    Chaque règle reçoit le bon drapeau, `[R=301,L]` ou `[R=302,L]`, pour que le bloc fonctionne directement avec mod_rewrite.

  4. 4

    Copiez les directives

    Le bloc généré va à l'intérieur de la section `<IfModule mod_rewrite.c>` de .htaccess.

directives mod_rewrite vs mod_alias

Apache propose deux modules pour les redirections. Choisissez en fonction de la complexité de la règle.

Guide de décision

Exigence Utiliser Exemple
URL ancienne exacte → URL nouvelle exacte Redirect Redirect 301 /old /new
Préfixe joker RedirectMatch RedirectMatch 301 ^/blog/(.*)$ /articles/$1
Correspondance de chaîne de requête RewriteRule Voir ci-dessous
Forcer HTTPS RewriteRule RewriteCond %{HTTPS} off + règle
Conditionnel (navigateur, cookie) RewriteRule Avec RewriteCond

Exemple : forcer HTTPS avec www

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Exemple : déplacer /blog/post-123 vers /articles/post-123

RewriteEngine On
RewriteRule ^blog/(.*)$ /articles/$1 [L,R=301]

Drapeaux que vous verrez

  • L, dernier, ne pas continuer à traiter d’autres règles.
  • R=301 ou R=302, rediriger avec ce code d’état.
  • NC, insensible à la casse.
  • QSA, ajouter la chaîne de requête d’origine à la nouvelle URL.
  • NE, ne pas réencoder les caractères spéciaux dans la cible.

Erreurs courantes

  • Oublier RewriteEngine On, sans cela, aucune RewriteRule n’a d’effet.
  • Utiliser 302 par défaut, Google le considère comme temporaire, donc l’ancienne URL continue de se classer.
  • Redirections en chaîne (ancienne → intermédiaire → finale), visez toujours un seul saut ; chaque saut supplémentaire perd de l’équité de lien et ajoute de la latence.

Questions fréquentes

Utilisez 301 pour les mouvements permanents : migration de site, changement de slug d’URL, mise à niveau HTTPS. Utilisez 302 uniquement pour des situations temporaires, comme le routage vers une page de maintenance ou un test A/B. Les moteurs de recherche transfèrent les signaux de classement sur 301, pas de manière fiable sur 302.

La cause la plus courante est d’oublier le slash de début dans le motif. Dans RewriteRule, le motif correspond au chemin sans le slash de début (par exemple, ^blog/). Dans Redirect (mod_alias), le motif commence par un slash (/blog). Ne mélangez pas les deux conventions.

Oui, utilisez RewriteCond %{QUERY_STRING} ^id=123$ avant une RewriteRule. Le Redirect simple ne lit pas la chaîne de requête ; seule RewriteRule peut correspondre dessus.

Oui, à la prochaine requête, Apache relit .htaccess à chaque requête. Aucun redémarrage du serveur n’est nécessaire. Si rien ne se passe, vérifiez que AllowOverride All est défini dans le vhost pour le répertoire.

Outils similaires

Outil disponible dans d’autres langues