J’ai besoin de mettre des nombres dans une url résultante dans la règle urlrewrite, donc à partir de l’URL comme “/ test / 723 /” Je vais “/ test / 700-series / 723 /” Evidemment ceci
RewriteRule ^/test/([1-9])([0-9]{2})/$ /test/$100-series/$1$2/
ne fonctionne pas parce que 100 $ ne peuvent pas être interprétés correctement. Y a-t-il un moyen de séparer 1 $ de tout nombre derrière lui?
Vous êtes assez proche, supprimez simplement la barre oblique:
RewriteRule ^test/([1-9])([0-9]{2})/?$ /test/$100-series/$1$2/ [L]
.htaccess
est par directive de répertoire et Apache supprime le chemin de répertoire actuel (entraînant ainsi une barre oblique) du modèle d’URI RewriteRule
. Selon le document officiel Apache, il est clairement indiqué que:
RewriteRule backreferences : Il s’agit des backreferences de la forme $ N (0 <= N <= 9). $ 1 à $ 9 donnent accès aux parties groupées (entre parenthèses) du motif, à partir de la règle Rewrite qui est soumise à l'ensemble actuel des conditions RewriteCond. $ 0 donne accès à la chaîne entière correspondant à ce modèle.
Hence $100 is always interpreted as $1 and 2 literal zeroes.