Aller au contenu principal

Le fichier .htaccess d'Apache

Maîtrisez votre fichier .htaccess Apache avec des astuces essentielles pour la sécurité, les redirections, le contrôle d'accès aux fichiers, la Content Security Policy (CSP), le forçage du HTTPS et l'optimisation des performances.

· 5 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Cet article a plus d'un an, mais il a été relu le 30 juillet 2026 — son contenu est toujours exact.

Le fichier .htaccess d'Apache

⚡
TL;DR

Voici une large référence de snippets .htaccess prêts à l'emploi : en-têtes Content Security Policy, blocage de fichiers par nom / extension / préfixe point (fichiers cachés), affichage inline forcé ou téléchargement forcé, forçage du HTTPS+www avec preload HSTS, mode maintenance, compression gzip et en-têtes expires, contrôle d'accès par IP, protection contre le clickjacking et le MIME-sniffing, désactivation de l'exécution de scripts ou du listing de répertoires, protection par mot de passe de fichiers/dossiers, différents schémas de redirection, et blocage de l'indexation d'un dossier par les moteurs de recherche.

Quelques trucs et astuces pour votre fichier .htaccess (Apache).

Ces directives fonctionnent sur n'importe quel serveur Apache, y compris celui, jetable, que vous pouvez démarrer localement en quelques secondes avec Lancer un site HTML en quelques secondes avec Docker — une manière pratique de tester une règle de redirection avant de la pousser en production.

CSP - Content Security Policy​

Utilisez les lignes suivantes comme source d'inspiration :

<IfModule mod_headers.c>
# Add CSP (Content Security Policy)
Header set Protected-by "What-you-want-or-just-drop-this-line"
# Replace XXXXXXXXXXXXXX by your site name like www.yoursite.com
Header always set Feature-Policy "camera 'none'; fullscreen 'self'; microphone 'none'; payment 'none'; sync-xhr 'self' XXXXXXXXXXXXXX"
# Blocks a request if the requested type is
# "style" and the MIME type is not "text/css", or
# "script" and the MIME type is not a JavaScript MIME type.
Header set X-Content-Type-Options "nosniff"
# Prevent from Clickjacking by allowing frame to be displayed only
# on the same origin as the page itself.
Header always set X-Frame-Options SAMEORIGIN
# Force HTTPS (don't use this if you're still on http)
# env=HTTPS didn't work... but while "expr=%{HTTPS} == 'on'" is well working
# see https://stackoverflow.com/questions/24144552/how-to-set-hsts-header-from-htaccess-only-on-https#comment81632711_24145033
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" "expr=%{HTTPS} == 'on'"
# Enables XSS filtering. Rather than sanitizing the page, the browser
# will prevent rendering of the page if an attack is detected.
Header always set X-XSS-Protection "1; mode=block"
# The Referrer header will be omitted entirely. No referrer information is
# sent along with requests.
Header always set Referrer-Policy "no-referrer"
# CSP : define / whitelist domains where files can be loaded
# (f.i. fonts.googleapis.com, ...)
# This should be done for scripts, images, styles, frame, ...
# Replace XXXXXXXXXXXXXX by your site name like https://www.yoursite.com
# ----------------------------------------------------------------------
# UNCOMMENT THE FOLLOWING LINE ONLY IF YOU KNOW WHAT YOU'RE DOING.
# THIS LINE CAN BREAK YOUR SITE SO, ENABLE IT AND TEST YOUR SITE A LOT,
# ALL PAGES IF POSSIBLE.
# ----------------------------------------------------------------------
#Header set Content-Security-Policy: "default-src 'self'; base-uri 'self'; form-action 'none'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://ajax.googleapis.com https://www.google.com https://www.google-analytics.com https://code.jquery.com https://www.gstatic.com https://maxcdn.bootstrapcdn.com https://cdnjs.cloudflare.com https://stackpath.bootstrapcdn.com https://unpkg.com; font-src 'self' data: https://fonts.googleapis.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com; style-src 'self' 'unsafe-inline' https://maxcdn.bootstrapcdn.com https://fonts.googleapis.com https://cdnjs.cloudflare.com https://stackpath.bootstrapcdn.com; img-src 'self' data: https://www.paypal.com https://raw.githubusercontent.com; frame-src XXXXXXXXXXXXXX https://www.google.com https://www.youtube.com; frame-ancestors 'none'"
</IfModule>

Ce fichier configure les en-têtes de sécurité HTTP via le module Apache mod_headers. Il active plusieurs protections : une politique de sécurité du contenu, une protection contre le clickjacking, le forçage HTTPS, la filtration XSS du navigateur, et le masquage du référent. Une ligne de Content-Security-Policy complète est commentée pour utilisation avancée après test approfondi.

Fichiers​

Bloquer l'accès à certains fichiers selon leur nom​

Bloquer les requêtes vers ces fichiers :

<FilesMatch "(file_1\.gif|file_2\.png)">
Order Allow,Deny
Deny from all
</FilesMatch>

Ce bloc .htaccess utilise FilesMatch pour cibler deux fichiers spécifiques (file_1.gif et file_2.png) par leurs noms, puis refuse l'accès à tous les visiteurs. L'ordre des directives Allow et Deny indique au serveur de vérifier les autorisations avant les refus, mais le Deny from all final bloque tout accès à ces fichiers.

Bloquer l'accès à certains fichiers selon leur extension​

Bloquer l'accès à tous les fichiers sauf ceux dont l'extension est mentionnée dans la liste ci-dessous :

Première option :

RewriteCond %{REQUEST_FILENAME} !(.*)\.(bmp|css|eot|html?|icon?|jpe?g|js|gif|pdf|png|svg|te?xt|ttf|webp|woff2?|xml|zip)$
RewriteRule . - [F]

Ce bloc empêche l'accès direct aux fichiers qui ne sont pas des ressources statiques (images, feuilles de style, polices, etc.). Si une requête cible un fichier qui n'a pas l'une des extensions autorisées, le serveur retourne une erreur 403 Forbidden pour le bloquer.

Deuxième option :

RewriteCond %{REQUEST_FILENAME} !\.(ico?n|img|gif|jpe?g|png|css|map)$ [NC]
RewriteCond %{REQUEST_FILENAME} !\.js(\?.*)?$ [NC]
RewriteCond %{REQUEST_FILENAME} !\.(eot|svg|ttf|woff2?)(\?.*)?$ [NC]
# Comment this line if you wish to make possible to access the /libraries folder by url.
RewriteRule . - [F]

Cette configuration Apache filtre les requêtes HTTP pour bloquer l'accès direct à un dossier spécifique, tout en permettant aux fichiers statiques courants (images, CSS, JavaScript, polices) de passer. Les trois conditions RewriteCond énumèrent les extensions autorisées, et si une requête ne correspond à aucune d'elles, la règle RewriteRule la rejette avec une erreur 403.

Bloquer l'accès aux fichiers et dossiers cachés​

Bloquer l'accès à un fichier ou un dossier dont le nom commence par un point (autrement dit, un fichier ou un dossier caché) :

<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>

Ce bloc de configuration Apache utilise mod_rewrite pour bloquer l'accès aux fichiers et répertoires cachés (commençant par un point). Il vérifie d'abord si la requête correspond à un répertoire ou un fichier existant, puis refuse l'accès à ceux dont le nom commence par un point en retournant une erreur 403.

Forcer​

Forcer l'affichage​

Ne laissez pas le navigateur télécharger ces fichiers, mais dites-lui comment les afficher (du texte dans l'exemple) :

<FilesMatch "\.(tex|log|aux)$">
Header set Content-Type text/plain
</FilesMatch>

Cette configuration Apache intercepte les fichiers avec les extensions tex, log ou aux et force leur type MIME à text/plain, ce qui empêche le navigateur de les télécharger ou de les traiter comme des fichiers binaires.

Empêcher le téléchargement​

Par exemple, forcer le téléchargement des fichiers PDF :

<FilesMatch "\.(pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>

Ce bloc de configuration Apache intercepte les fichiers PDF et force le navigateur à les télécharger plutôt que de les afficher. Il modifie le type MIME en octet-stream et ajoute un en-tête Content-Disposition pour déclencher le comportement de téléchargement.

Forcer https et www, compatible hstspreload​

Une fois implémenté dans votre .htaccess, un accès à yoursite.com ou http://yoursite.com doit rediriger vers https://www.yoursite.com.

Testez aussi votre site avec https://hstspreload.org/ pour vérifier que votre preloading est correct (vert).

<IfModule mod_rewrite.c>
# Rewrite the URL to force https and www.
RewriteEngine On
# Compliant with hstspreload.org : first redirect to https if needed
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# then redirect to www. when the prefix wasn't mentioned
# hstspreload.org seems to not really like to make the two at once
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

Ce bloc de configuration Apache active la réécriture d'URL pour forcer deux redirections successives : d'abord basculer le trafic en HTTPS, puis ajouter le préfixe www. si absent. Cette approche progressive satisfait les exigences de hstspreload.org qui préfère traiter ces redirections séparément plutôt que en une seule étape.

Divers​

Désactiver l'affichage des erreurs​

Ne pas afficher les erreurs (exactement comme le fait error_reporting(0))

<IfModule mod_php5.c>
php_flag display_errors off
php_flag log_errors on
php_flag track_errors on
php_value error_log error.log
</IfModule>

Ce bloc configure le comportement des erreurs PHP en désactivant leur affichage aux utilisateurs tout en les enregistrant dans un fichier log pour que les développeurs puissent les consulter. Il active le suivi des erreurs et définit où les logs doivent être sauvegardés.

Activer l'affichage des erreurs​

Afficher les erreurs (exactement comme le fait error_reporting = E_ALL).

À n'utiliser que sur un serveur de développement, sinon vous exposez des informations sensibles à vos visiteurs.

<IfModule mod_php5.c>
php_flag display_errors on
php_flag log_errors on
php_flag track_errors on
php_value error_log error.log
</IfModule>

Ce bloc configure le gestionnaire d'erreurs PHP en activant l'affichage des erreurs dans le navigateur, leur enregistrement dans les logs du serveur, et le suivi des erreurs précédentes, tout en spécifiant que les erreurs doivent être écrites dans le fichier error.log. La configuration est conditionnée à la présence du module mod_php5.

Activer un mode maintenance​

Rediriger toutes les requêtes faites vers votre site vers une page spécifique (appelée maintenance.php ci-dessous). N'oubliez pas de remplacer le code ADD_YOUR_IP_HERE par votre adresse IP actuelle.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !127.0.0.1 [NC]
RewriteCond %{REMOTE_ADDR} !localhost [NC]
RewriteCond %{REMOTE_ADDR} !ADD_YOUR_IP_HERE [NC]
RewriteCond %{REQUEST_FILENAME} !maintenance.php(.*)$ [NC]
RewriteRule .* /maintenance.php [L,NC,QSA]
</IfModule>

Ce fichier .htaccess redirige tout le trafic vers une page de maintenance, sauf pour certaines adresses IP locales et le fichier maintenance.php lui-même. Il utilise le module mod_rewrite d'Apache pour intercepter les requêtes HTTP et les acheminer vers une page de maintenance à afficher aux visiteurs.

Optimisation​

Compresser les fichiers selon leur type ou leur extension​

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/font-otf application/font-ttf application/font-woff application/javascript application/json application/manifest+json application/rss+xml application/vnd.ms-fontobject application/xhtml+xml application/xml application/x-javascript image/svg+xml text/css text/csv text/html text/javascript text/plain text/xml
</IfModule>
</IfModule>
# On some hosting companies, mod_deflate isn't installed but well mod_gzip.
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/font-otf
mod_gzip_item_include mime ^application/font-ttf
mod_gzip_item_include mime ^application/font-woff
mod_gzip_item_include mime ^application/vnd.ms-fontobject
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_include mime ^image/svg+xml*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

Ce fichier configure la compression HTTP sur le serveur Apache pour réduire la taille des réponses envoyées aux navigateurs. Il essaie d'abord d'utiliser mod_deflate s'il est disponible, puis bascule sur mod_gzip comme solution de secours pour les hébergeurs qui ne disposent que de ce dernier module. Dans les deux cas, la compression s'applique aux types de contenu courants comme HTML, CSS, JavaScript et les polices web.

Ajouter une expiration (en-têtes expires)​

Activer les ETags

<IfModule mod_headers.c>
# Keep the connection alive (not really related to expirations but really increase download speed
Header set Connection keep-alive
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
# Default expiration: 1 hour after request
ExpiresDefault "access plus 1 month"
# CSS and JS expiration
ExpiresByType text/css "access 1 month"
ExpiresByType text/javascript "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
# webfonts
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-woff "access 1 year"
ExpiresByType application/x-font-woff2 "access 1 year"
ExpiresByType font/eot "access plus 1 month"
ExpiresByType font/truetype "access 1 year"
ExpiresByType font/opentype "access 1 year"
ExpiresByType font/woff "access 1 year"
ExpiresByType image/svg+xml "access 1 year"
ExpiresByType application/vnd.ms-fontobject "access 1 year"
ExpiresByType application/font-otf "access 1 year"
ExpiresByType application/font-ttf "access 1 year"
ExpiresByType application/font-woff "access 1 year"
ExpiresByType application/x-font-ttf "access 1 year"
# Media
AddType image/vnd.microsoft.icon .cur
ExpiresByType application/ico "access 1 year"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/bmp "access plus 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/ico "access 1 year"
ExpiresByType image/icon "access 1 year"
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/jpeg "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType image/svg+xml "access 1 month"
ExpiresByType image/vnd.microsoft.icon "access 1 year"
ExpiresByType image/webp "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType text/ico "access 1 year"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Flash
ExpiresByType application/x-shockwave-flash "access plus 2 months"
ExpiresByType image/swf "access plus 2592000 seconds"
# Files
ExpiresByType application/pdf "access 1 week"
ExpiresByType application/x-gzip "access 1 month"
ExpiresByType text/x-component "access 1 month"
# Data
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rdf+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
ExpiresByType application/schema+json "access plus 0 seconds"
ExpiresByType application/vnd.geo+json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
</IfModule>
# Perhaps the MIME type of SWF is incorrect, in this case, the FileMatch will do the job
<IfModule mod_headers.c>
<FilesMatch "\.(swf)$">
Header set Expires "access plus 2592000 seconds"
</FilesMatch>
</IfModule>

Ce fichier configure la mise en cache HTTP du serveur pour optimiser les performances. Il active les en-têtes de connexion persistante, puis définit des durées d'expiration différentes selon le type de fichier : les ressources statiques comme les polices et images sont cachées longtemps (1 mois à 1 an), tandis que le contenu dynamique comme le HTML et JSON ne sont pas cachés du tout (0 seconde).

Protection​

Durcir votre .htaccess vous protège pour l'avenir ; si vous suspectez que le site a déjà été compromis, commencez par aeSecure - QuickScan - Scanner de virus gratuit.

Refuser tout accès​

## Apache 2.2
Deny from all
## Apache 2.4
# Require all denied

Ce fichier .htaccess contient deux approches pour bloquer l'accès à un répertoire selon la version d'Apache. La première ligne utilise la syntaxe obsolète pour Apache 2.2, tandis que la ligne 5 montre la syntaxe moderne pour Apache 2.4 et plus récent.

Refuser tout accès sauf le vôtre​

Remplacez simplement xxx.xxx.xxx.xxx par votre adresse IP.

## Apache 2.2
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx
## Apache 2.4
# Require all denied
# Require ip xxx.xxx.xxx.xxx

Ce fichier configure le contrôle d'accès Apache pour restreindre l'accès à un répertoire web. Les lignes 2-4 montrent la syntaxe pour Apache 2.2, qui refuse d'abord tout le monde puis autorise une adresse IP spécifique. Les lignes 7-8 commentées affichent l'équivalent moderne pour Apache 2.4, qui utilise une directive Require différente.

Empêcher le navigateur de faire du MIME-sniffing​

<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
</IfModule>

Ce snippet configure Apache pour envoyer un header HTTP de sécurité qui empêche les navigateurs de deviner le type de contenu d'un fichier. Le header X-Content-Type-Options: nosniff force le navigateur à respecter le type MIME déclaré par le serveur plutôt que de tenter de déterminer le type lui-même, ce qui réduit les risques de sécurité liés aux attaques de type confusion MIME.

Éviter le clickjacking et activer la protection XSS des navigateurs​

<FilesMatch "\.(pl|php|cgi|spl)$">
<IfModule mod_headers.c>
# security
Header set X-Frame-Options "DENY"
Header set X-XSS-Protection "1; mode=block"
</IfModule>
</FilesMatch>

Ce bloc configure les en-têtes de sécurité HTTP pour les fichiers exécutables (Perl, PHP, CGI, SPL) en utilisant le module mod_headers d'Apache. Il empêche le clickjacking en interdisant l'intégration dans des frames et active la protection XSS du navigateur.

Désactiver l'exécution des scripts​

Placez ces lignes dans, par exemple, /tmp/.htaccess pour empêcher l'exécution de scripts dans le dossier /tmp.

# secure directory by disabling script execution
AddHandler cgi-script .php .pl .py .jsp .asp .sh .cgi
Options -ExecCGI
##Deny access to all CGI, Perl, PHP and Python
<FilesMatch "\.(asp?x|cgi|php|pl|py)$">
Deny from all
</FilesMatch>

Ce fichier .htaccess sécurise un répertoire en empêchant l'exécution de scripts. Il ajoute d'abord des associations de fichiers pour les scripts, puis désactive l'exécution CGI et refuse explicitement l'accès à tous les fichiers de script potentiels via une correspondance de motif regex.

Interdire le listing des répertoires​

Ne laissez pas le serveur web fournir la liste des fichiers / dossiers comme le fait une commande dir.

<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>

Ce bloc désactive l'affichage automatique du contenu des répertoires sur le serveur web. Si un visiteur accède à un dossier sans fichier index, au lieu de voir la liste des fichiers, il recevra une erreur 403. C'est une mesure de sécurité courante pour éviter l'exposition accidentelle de fichiers sensibles.

htpasswd​

Mot de passe sur un fichier​

AuthName "File access restriction"
AuthType Basic
AuthUserFile /home/your_account/.htpasswd
<Files "confidential.md">
Require valid-user
</Files>

Ce fichier configure une authentification HTTP Basic pour protéger un fichier spécifique nommé confidential.md. Seuls les utilisateurs ayant des identifiants valides dans le fichier .htpasswd pourront accéder à ce fichier.

Mot de passe sur un dossier​

Placez ces lignes dans un fichier nommé .htaccess dans le dossier à protéger (par ex. folder_name) :

AuthType Basic
AuthName "This folder is protected"
AuthUserFile /home/your_account/folder_name/.htpasswd
Require valid-user

Ce fichier configure l'authentification HTTP Basic pour protéger un dossier. Il spécifie le type d'authentification, un message de bienvenue, l'emplacement du fichier contenant les identifiants utilisateurs, et exige qu'un utilisateur valide se connecte pour accéder aux ressources.

Whitelist - Interdire l'accès à tous les fichiers sauf ceux mentionnés​

# prevent accessing to all files excepted those mentioned (case sensitive!)
<FilesMatch "(?<!\.png|\.jpe?g|\.gif|\.svg|\.icon?)$">
# Apache 2.2
# deny from all
# Apache 2.4
# Require all denied
</FilesMatch>

Ce fichier .htaccess configure Apache pour bloquer l'accès à tous les fichiers sauf ceux ayant certaines extensions (png, jpg, jpeg, gif, svg, icon). La règle utilise une expression régulière négative pour inverser la logique : elle cible tous les fichiers dont le nom n'est PAS suivi par ces extensions autorisées.

Redirection​

Rediriger un site entier​

Redirect 301 / https://www.newsite.com/

Cette directive redirige de manière permanente (code 301) toutes les demandes du domaine actuel vers un nouveau site. Le code 301 indique aux moteurs de recherche et aux navigateurs que ce changement est permanent, ce qui préserve le référencement.

Redirection permanente​

RedirectPermanent /old.php http://www.yoursite.com/new.php

Ce fichier .htaccess configure une redirection HTTP permanente (code 301) qui envoie les visiteurs accédant à /old.php vers http://www.yoursite.com/new.php. C'est utile pour migrer du contenu vers une nouvelle URL tout en préservant le classement SEO et en informant les navigateurs que le changement est définitif.

Redirection temporaire​

Redirect 301 /old.php http://www.yoursite.com/new.php

Ce fichier contient une directive de redirection permanente qui envoie les visiteurs accédant à /old.php vers http://www.yoursite.com/new.php. Le code 301 indique au navigateur et aux moteurs de recherche que cette redirection est permanente, ce qui aide à préserver le classement SEO de l'ancienne page.

Rediriger un sous-dossier​

Par exemple, rediriger /category/apple.php vers apple.php

RedirectMatch 301 ^/category/(.*)$ /$1

Cette règle redirige permanemment (code 301) toutes les URLs commençant par /category/ vers la racine, en supprimant le préfixe /category/. Par exemple, /category/produits devient /produits. C'est utile quand on réorganise la structure d'un site et qu'on veut que les anciennes URLs restent fonctionnelles.

ou régler des problèmes d'orthographe en redirigeant par exemple toutes les requêtes vers le dossier fruit vers sa forme au pluriel.

RedirectMatch 301 ^/fruit/(.*)$ /fruits/$1

Cette règle redirige permanemment (code 301) toutes les URL commençant par /fruit/ vers /fruits/ en conservant le reste du chemin. Cela permet de corriger une ancienne URL mal orthographiée et de préserver les paramètres de route.

Autre exemple : rediriger les URL de /archive/2020/... vers /2020/....

RewriteRule ^archive/2020/(.*)$ /2020/$1 [R=301,NC,L]

Cette règle de réécriture d'URL redirige de manière permanente (code 301) toutes les requêtes vers le chemin archive/2020/ vers le chemin 2020/ simplifié, en préservant tout ce qui suit 2020 dans l'URL. La correspondance ignore la casse grâce au flag NC, et le flag L arrête le traitement des autres règles.

Moteurs de recherche​

Interdire l'indexation​

Placez ces lignes dans, par exemple, yoursite/administrator pour informer les moteurs de recherche que vous ne les autorisez pas à indexer les fichiers de ce dossier (et de ses sous-dossiers).

# Be sure that pages under this folder won't be indexed
<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex, nofollow"
</IfModule>

Ce fichier configure le serveur web pour empêcher les moteurs de recherche d'indexer les pages du dossier contenant ce fichier. Il utilise le module mod_headers pour ajouter un en-tête HTTP X-Robots-Tag avec les directives noindex et nofollow.


Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?