Règle de réécriture avec plus de 9 paramètres

  Information

Il n'est pas possible d'avoir plus de 9 rétroréférences avec le motif d'une RewriteRule. Ainsi $10 ne correspond pas à la dixième rétroréférence mais correspond à $1 suivi d'un 0. Pour contourner le problème deux solutions sont possibles. La première est de regrouper les motifs pour faire le traitement en php (avec par exemple l'utilisation de la fonction explode). La deuxième solution consiste à utiliser les rétroréférences de la RewriteCond que l'on va ajouter juste avant notre RewriteRule. C'est cette dernière solution qui est décrite ci-dessous. Il est possible d'aller jusqu'à 9+9=18 paramètres avec cette solution en utilisant les 9 rétroréférences de la RewriteCond (%1 à %9) et les 9 rétroréférences de la RewriteRule ($1 à $9). Nous avons par exemple l'url suivante contenant 10 paramètres notés de p1 à p10 : /page.php?p1=aaa&p2=bbb& … &p10=jjj que nous souhaitons réécrite en : /page-aaa-bbb- … -jjj.html

Une astuce consiste à utiliser la rétroréférence $0 comme chaîne de test de la RewriteCond. Elle correspond au motif complet de notre RewriteRule. En d'autre terme c'est égal à l'url complète : page-aaa-bbb- … - jjj.html Le motif de la condition permet de capturer le 10ème paramètre. Le paramètre p10 est alimenté avec la rétroréférence %1. Les 9 premiers paramètres sont capturés par le motif de la règle. Les paramètres de p1 à p9 sont alimentés avec les rétroréférences notées de $1 à $9.

Remarque : La probabilité pour que vous ayez vraiment besoin de ce code est excessivement faible. Il n'est même pas recommandé de l'utiliser car il y a un risque qu'une telle url soit considérée comme du spam. Ce code peut par contre être utilisé dans le cadre d'un intranet ou dans la partie administration.


  code source classé dans  .HTACCESS

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
                               
/*
Titre : Règle de réécriture avec plus de 9 paramètres

URL : https://phpsources.net/code_s.php?id=791
Date édition : 07 Juil 2008
*/
/*---------------------------------------------------------------*/
RewriteEngine On
RewriteCond $0
^page-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-([^-]*)\.html$
RewriteRule
^page-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-[
^-]*\.html$ /page.php?p1=$1&p2=$2&p3=$3&p4=$4&p5=$5&p6=$6&p7=$7&p8=$8&p9=$9&p10=
%1

   Un petit merci aux auteurs pour leur travail, ça ne coûte rien et ça fait toujours plaisir wink

 Autres snippets qui pourraient vous intéressez

Retourne le numéro de semaine passée en paramètre avec PHP

Compatibilité : PHP 5, PHP 7, PHP 8

Calcul à quelle semaine de l'année correspond 1 date. La fonction calcule en quelle est une date donnée.

Insère un élément dans un tableau a une place donnée

Compatibilité : PHP 5, PHP 7, PHP 8

Insère un élément dans un tableau selon la clé. La fonction accepte les tableaux uniquement avec des clés numériques.

Vérifie si 1 chaine ne contient aucun caractère alphanumérique

Compatibilité : PHP 5, PHP 7, PHP 8

Fonction qui vérifie si votre chaine ne contient aucun caractère alphanumérique.

Photo du jour choisi de manière aléatoire à partir d'un répertoire

Compatibilité : PHP 5, PHP 7, PHP 8

Vous désirez afficher une image différente tous les jours ? Ce script est fait pour vous. Le principe est simple, un fichier texte contient le jour

Distances routières au Québec

Compatibilité : PHP 5, PHP 7, PHP 8

Ce code calcule les distances entre deux villes importantes du Québec.

* Requêtes exécutées avec Recherche Contextuelle

  Derniers scripts PHP / MySQL

TwitterOAuth PHP Library pour API REST de Twitter 8.1.1

Script PHP / MySQL
Langue langue en
Date 08 Fév 2026
Taille 0.03 Mo
Catégorie Social-network

DokuWiki 2025-05-14b

logo DokuWiki
Langue langue en
Date 07 Fév 2026
Taille 4 Mo
Catégorie Wiki

WordPress 6.4.1

logo WordPress
Langue langue fr
Date 05 Fév 2026
Taille 34 Mo
Catégorie Blogs

PrestaShop 9.0.2-2.1

logo PrestaShop
Langue langue fr
Date 02 Fév 2026
Taille 116 Mo
Catégorie Ecommerce

  07 Juil 2008

13 678 Vues
Compatibilité du code
PHP 5, 7 et 8+
58 codes

Catégorie :  .HTACCESS

Ajouter un logo en filigrane sur vos images et vos photos
Anti spam à partir des urls qui spamment
Appliquer une condition à plusieurs règles de réécriture
Augmenter les performances avec AllowOverride
Autoriser l'accès qu'a certaines extensions
Blocage d'une adresse IP avec le fichier .htaccess
Bloquer des sites qui spam - version php et .htaccess
Bloquer l'accès à certaines extensions de fichier
Bloquer les user agent (navigateur) indésirables
Comment mettre du code php avec une extension html
Compression automatique des pages
Corriger automatiquement les petites erreurs de saisie des urls
Définir le charset par défaut
Désactiver l'option MultiViews : une url est accessible avec et sans extension
Déplacer une arborescence sur une autre url
Désactiver la signature du serveur
Empêche une réécriture de boucler
Empêcher l'accès avec www.
Eviter de recharger des pages statiques en indiquant une expiration dans 100 ans
Faire une réécriture ou une redirection que si la requête ne correspond pas à un répertoire existant
Faire une réécriture ou une redirection que si le fichier n'existe pas
Faire une réécriture ou une redirection que si le fichier existe
Force la redirection en HTTPS
Forcer l'accès en français si aucune langue n'est sélectionnée
Forcer la redirection de index.html vers /
Gérer l'accès au site selon l'heure
Gestion de cache par fichier .htaccess
Interdire l'accès à un répertoire sans fichier index
Interdire l'affichage de vos images sur un autre site
Maitriser l'affichage du contenu du répertoire en cas d'absence d'index
Mettre les images, flash,... en cache plus longtemps
Modifier le type MIME (Content-Type) pour un flux rss
Obliger l'accès avec index.php et rediriger l'accès par /
Protéger un répertoire avec un mot de passe chez FREE
Protection contre les attaques de hacker avec register global on
Protection d'un répertoire avec un mot de passe
Réécrire des sous-domaines vers le domaine principal avec une variable
Réécriture de sous-domaine vers un répertoire du domaine principal
Règle de réécriture avec plus de 9 paramètres
Réécriture si la requete ne correspond pas à 1 répertoire
Recevoir un mail quand vos photos sont affichées sur un site inconnu
Redirection d'un ancien nom de domaine vers un nouveau nom de domaine
Redirection d'un répertoire vers un sous domaine
Redirection d'une arborescence vers une page unique
Redirection https vers http ou http vers https, redirection page sécurisée SSL/TLS
Redirection massive avec le sous domaine (www)
Redirection pour une maintenance de votre site
Redirige tout un repertoire d'un domaine principale vers un sous-domaine
Rediriger la racine d'un site vers un répertoire
Rediriger tout en gardant l'url d'origine
Rediriger tout un répertoire vers la racine
Rediriger un domaine vers un autre et suivre dans Google analytics
Rediriger une page vers une url contenant la date du jour
Referrer bloquer le spam
Renommer l'url et les paramètres avec une redirection 301
Substituer vos images si elles sont affichées sur un autre site
Tester les réécritures d'url en local sur un PC avec WampServer
Tracking des liens du bouton J'aime de Facebook dans Analytics