Bouts de Codes

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

Information sur le code source

Enregistr� le 07 Juil 2008 - Vu 9515 fois
Code source zipp�: t�l�charger le zip
Impression: imprimer le code
  • Sociale bookmarking: Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Partage ce code sur Facebook
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute R�gle de r��criture avec plus de 9 param�tres
Votre avis: 
 
Ecrit par :  admin
[66] sources en Apache voir
 

Description du code source

Informations sur le code source

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



.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
 

################################################################################
#                                                                              #
#                         __                   _ __  _                         #
#               __ ______/ /______ _    ______(_) /_(_)__  ___ _               #
#              / // / __/ / __/ -_) |/|/ / __/ / __/ / _ \/ _ `/               #
#              \_,_/_/ /_/_/  \__/|__,__/_/ /_/\__/_/_//_/\_, /                #
#                                                        /___/                 #
#                                                                              #
#                                                                              #
################################################################################
#                                                                              #
# Titre          : R�gle de r��criture avec plus de 9 param�tres               #
#                                                                              #
# URL            : /scripts68-Apache.htm             #
# Auteur         : admin                                                       #
# 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

Ajouter un commentaire

RSS
snippets


RSS
commentaires

 
Code de s�curit�

Attention: Les champs marqu�s d'une �toile * sont obligatoires
Librairie

Langages de programmation

La librairie est ouverte � tous et elle est acc�s principalement sur les langages Snippets. Vous trouverez aussi d'autres langages de programmation tel que le CSS, HTML, AJAX, ASP.. Plus de 300 r�f�rences facilement accessibles. Visiter

  • Apache
  • Apache Tomcat 5 : Serveur d'application Java ; Administration sous Windows ou Linux
  • Apache : La R�f�rence
  • Serveurs LAMP : Administration de la plate-forme Web
  • PHP 5.2 et APACHE 2 - Ma�trisez le d�veloppement et le d�ploiement de votre site web interactif [Nouvelle version]
  • Apache Tomcat 6 - Guide d administration du serveur Java EE sous Windows et Linux
  • Guide de r�f�rence : Apache 2 : Installation, configuration et administration sous Windows et Linux
  • LAMP (Linux, Apache, MySQL, PHP) Pack 4 volumes : Ma�trisez vos applications Web en Open Source
  • Montez votre serveur de A � Z
  • Apache (version 2) : Installation, administration et s�curisation