Comment définir des en-têtes différents selon les chemins sur Cloudflare Pages ?

L'équipe Citead, mis à jour le

En bref. Un fichier _headers associe des motifs d’URL à des lignes d’en-têtes indentées ; toutes les règles correspondantes ajoutent leurs en-têtes, les valeurs répétées étant réunies par des virgules.

Définition : Les règles d’en-têtes par chemin de Cloudflare Pages associent un motif d’URL à des noms et valeurs d’en-têtes de réponse dans un fichier texte brut _headers. Au 17 octobre 2026, Cloudflare documente ces règles pour les réponses servant des ressources statiques ; chaque règle correspondante ajoute ses en-têtes.

Points clés

  • Le guide des en-têtes HTTP personnalisés de Cloudflare désigne _headers comme le fichier de personnalisation des en-têtes des projets Pages.
  • La documentation des en-têtes Pages indique que les règles qui se chevauchent cumulent leurs en-têtes et que les valeurs d’un même en-tête sont réunies avec une virgule.
  • La documentation des redirections de Cloudflare indique que les redirections s’exécutent avant les règles d’en-têtes lorsqu’une requête correspond à des règles dans les deux fichiers.

Où placer le fichier et comment écrire les chemins ?

La documentation des en-têtes de Cloudflare place _headers, sans extension, dans le répertoire des ressources statiques du projet. Avec un framework, les fichiers de public/ ou static/ sont généralement copiés dans le répertoire de sortie de compilation (build). Sans framework, le fichier peut être placé directement dans ce répertoire de sortie. Pages analyse le fichier au lieu de le servir comme une ressource.

Chaque bloc commence par une URL ou un motif d’URL, suivi de lignes Name: value indentées. Ces règles sont adaptées de l’exemple de Cloudflare :

/secure/page
  X-Frame-Options: DENY

/static/*
  Access-Control-Allow-Origin: *

https://myproject.pages.dev/*
  X-Robots-Tag: noindex

Le bloc /secure/page cible ce chemin. Le bloc /static/* cible les chemins commençant par /static/. Le bloc avec une URL absolue cible aussi le nom d’hôte indiqué. Les motifs absolus doivent commencer par https et ne pas préciser de port ; la correspondance ignore le protocole et le port de la requête entrante.

Quelle différence entre les jokers et les paramètres nommés ?

Un « splat » est le caractère joker *, qui capture tous les caractères de façon gloutonne. La documentation de la correspondance des chemins de Cloudflare autorise un seul splat par URL et permet de réutiliser la valeur capturée avec :splat dans la valeur d’un en-tête.

Un paramètre nommé (placeholder) commence par un deux-points suivi d’une lettre. Son nom contient des lettres, des chiffres ou des traits de soulignement. Dans un chemin, la capture s’arrête à / ; dans un nom d’hôte, elle s’arrête à . ou /. Cloudflare autorise une seule référence à chaque paramètre nommé et donne cet exemple :

/movies/:title
  x-movie-name: You are watching ":title"

Ici, :title insère le segment de chemin capturé dans l’en-tête de réponse. Cloudflare présente aussi un paramètre dans le nom d’hôte, avec une règle dont la valeur d’en-tête réutilise le nom du projet :

https://:project.pages.dev/*
  Access-Control-Allow-Origin: https://staging.:project.pages.dev/

Que se passe-t-il lorsque les règles d’en-têtes se chevauchent ?

Les règles de correspondance des en-têtes de Cloudflare appliquent à une requête les en-têtes de tous les blocs correspondants. Lorsqu’un même en-tête apparaît deux fois, Pages réunit ses valeurs en les séparant par une virgule. L’exemple de la documentation où des règles de chemin et de nom d’hôte se chevauchent produit X-Robots-Tag: nosnippet, noindex pour https://myproject.pages.dev/static/styles.css.

Une ligne de suppression commence par un point d’exclamation suivi d’une espace. Cloudflare présente cette configuration pour supprimer un en-tête ajouté par une règle plus générale :

/*
  Content-Security-Policy: default-src 'self';

/*.jpg
  ! Content-Security-Policy

Le bloc général ajoute Content-Security-Policy ; la règle des images le supprime pour les chemins JPEG correspondants.

Termes associés

Questions fréquentes

Combien de règles d’en-têtes puis-je définir ?

La documentation de référence des en-têtes de Cloudflare autorise jusqu’à 100 règles. Chaque ligne est limitée à 2 000 caractères, espaces, nom et valeur de l’en-tête compris.

Pourquoi un chemin correspondant ne reçoit-il aucun en-tête personnalisé de ce fichier ?

Si votre réponse est produite par Pages Functions, l’exclusion des Functions indiquée dans la même documentation s’applique même lorsque l’URL correspond à _headers. Pour ces réponses, ajoutez les en-têtes personnalisés dans le code des Functions.

Que se passe-t-il si mon chemin correspond aussi à une redirection ?

Les consignes de correspondance des redirections et des en-têtes de Cloudflare donnent la priorité à la redirection. Vérifiez votre fichier _redirects lorsque vous examinez un chemin correspondant qui effectue une redirection.

Sources

  1. Cloudflare, « Headers », mis à jour le 25 août 2026
  2. Cloudflare, « Redirects », mis à jour le 25 août 2026
  3. Cloudflare, « Add custom HTTP headers », mis à jour le 21 avril 2026

Vérifiez comment une page se lit pour les moteurs de réponse. Ouvrir l’analyseur de score GEO

Testez une page et voyez quoi corriger en premier

L'analyse prend en général moins de 10 secondes et ne demande pas de compte.

400 000+ pages notées dans le benchmark public