Générateur .htaccess pour Apache
Générez des règles .htaccess pour Apache : forcer HTTPS, ajouter ou retirer www, redirections 301, pages d'erreur, gzip, cache navigateur, en-têtes de sécurité.
Le code peut être 301, 302, 303, 307, 308 ou 410 (supprimé). Le nouveau chemin peut être une URL complète.
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# Redirects (mod_alias)
Redirect 301 /old-page /new-page
Redirect 301 /blog/2019 /blog
# Custom error pages
ErrorDocument 404 /404.html
# Disable directory listings
Options -Indexes
# Block access to hidden files such as .env and .git
<FilesMatch "^\.">
Require all denied
</FilesMatch>
RedirectMatch 404 /\.git
# Security headers
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# Compress text responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
AddOutputFilterByType DEFLATE application/javascript application/json application/xml application/rss+xml
AddOutputFilterByType DEFLATE image/svg+xml font/ttf font/otf
</IfModule>
# Browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/avif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
Qu'est-ce que Générateur .htaccess ?
Cet outil génère un fichier .htaccess prêt à l'emploi pour Apache 2.4. Cochez les fonctions voulues (redirection HTTPS, hôte canonique avec ou sans www, HSTS, désactivation du listage des répertoires, protection des fichiers cachés, compression gzip, cache navigateur, en-têtes de sécurité de base) et ajoutez vos propres redirections 301/302/410 et pages d'erreur personnalisées.
Comment utiliser Générateur .htaccess
- Cochez les options voulues et choisissez comment traiter www.
- Saisissez les redirections sous la forme
/ancien-chemin /nouveau-chemin, éventuellement suivies d'un statut (301, 302, 303, 307, 308 ou 410). - Saisissez les chemins des pages 404 et 500 personnalisées.
- Copiez ou téléchargez le résultat en .htaccess et testez-le d'abord sur un serveur de préproduction.
Exemple
Force HTTPS, remove www, redirect /old-page → /new-page
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Redirect 301 /old-page /new-page Quand utiliser Générateur .htaccess
Utilisez-le sur un hébergement mutualisé ou des serveurs Apache dont vous ne pouvez pas modifier la configuration principale. Sur Nginx, les réglages propres à LiteSpeed, Cloudflare ou un CDN, utilisez leur configuration : Nginx ignore totalement .htaccess. Une erreur de syntaxe provoque une erreur HTTP 500 pour tout le répertoire : testez toujours.
Comment fonctionne Générateur .htaccess
Les règles HTTPS et www utilisent mod_rewrite (RewriteCond %{HTTPS} off et conditions sur l'hôte) dans <IfModule mod_rewrite.c> ; la redirection www utilise directement https lorsque HTTPS est forcé, ce qui évite une chaîne à deux sauts. Les redirections de chemins utilisent les lignes Redirect de mod_alias (Redirect gone pour 410). La compression utilise mod_deflate, le cache mod_expires avec de longues durées pour les ressources statiques et aucune pour le HTML, et les en-têtes mod_headers avec Header always set. Les fichiers cachés sont refusés avec <FilesMatch "^\."> et RedirectMatch 404 /\.git.
Cas d'utilisation courants
- Forcer HTTPS et un hôte unique sans www après l'installation d'un certificat.
- Rediriger les anciennes URL après une refonte de site.
- Activer la compression et le cache pour accélérer un site WordPress sur hébergement mutualisé.
- Bloquer l'accès aux fichiers .env et .git.
Questions Fréquentes
Pourquoi ai-je une erreur 500 après avoir envoyé .htaccess ?
Généralement, un module requis n'est pas activé ou une directive n'est pas autorisée par AllowOverride. Consultez le journal d'erreurs d'Apache.
Dois-je activer HSTS ?
Seulement quand tout le site et tous les sous-domaines fonctionnent en HTTPS : les navigateurs refuseront le HTTP simple pendant la durée max-age.
.htaccess fonctionne-t-il sur Nginx ?
Non. Nginx ne lit pas .htaccess ; les règles doivent être traduites dans le bloc server.