Version complète: sur le forum Webmaster Hub : Pas de ^ ou de $ et ça passe quand même...
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
bertimus
Hello les bons,

Petite question de validation.. Je flippe un peu avec mes manip'.

Je bosse sur le .htaccess de categorizator. J'ai un 90plan OVH.

1 ligne m'interpelle car dans son état initial elle ne passe pas :
CODE
RewriteRule ^details-([0-9]+)\.html$   /details.php?id=$1 [L]

> Erreur 404

Mais si j'enlève le ^
CODE
RewriteRule details-([0-9]+)\.html$  /details.php?id=$1 [L]

ou encore le ^ et le $
CODE
RewriteRule details-([0-9]+)\.html   /details.php?id=$1 [L]

ça passe nickel.

Hum, est-ce normal ? Des explications ? Spécificité à OVH ?
Je veux dire, là, je ne respecte pas la structure conventionnelle et ça passe... ai-je bien le droit ?

Merci pour vos précisions qui m'aideront à dormir sur mes 2 oreilles sleep.gif

Bertrand
PhpTech
Bonsoir,

rapidement, et à vue d'oeuil, je te dirais d'essayer ceci :

CODE
RewriteRule ^(.+?)\details-([0-9]+)\.html$  /details.php?id=$1 [L]


ou encore

CODE
RewriteRule ^\details-([0-9]+)\.html$  /details.php?id=$1 [L]


ou encore

CODE
RewriteRule details-([0-9]+)\.html$  /details.php?id=$1 [L]



Rapide explication : il est possible que le slash d'entrée soit nécessaire (ex: www.ton-domain.com\details-10.html.

Bonne continuation, wink.gif

David.
bertimus
Merci pour ton assistance David !

Bon, les 2 premiers marchent pas, seul le 3ème fonctionne comme je l'avais avancé dans mon 1er message.

Je reviens alors à mon interrogation initiale : puis-je continuer sans ^ ni $, ça ne pose aucun problème ?
PhpTech
CITATION(bertimus @ mercredi 11 octobre 2006, 00h29) *
Merci pour ton assistance David !

Bon, les 2 premiers marchent pas, seul le 3ème fonctionne comme je l'avais avancé dans mon 1er message.

Je reviens alors à mon interrogation initiale : puis-je continuer sans ^ ni $, ça ne pose aucun problème ?


Oui et non, le "^" indique le départ de la chaine regexp, et le "$" la fin.
Si tu les enleves, ca marchera, c'est sur, mais...

/details-12.html.chose.machin

fonctionnera aussi, tout comme

truc/bidule/details-12.html.autre-truc.php

Essaye de réécrire en utilisant ce format :

CODE
RewriteRule ^(\\)?details-([0-9]+)\.html$  /details.php?id=$2 [L]


ou, le cas échéant:

CODE
RewriteRule ^(.+?)?details-([0-9]+)\.html$  /details.php?id=$2 [L]


Bon courage wink.gif

David.
bertimus
OK c'est compris, merci pour tes explications et ton assistance !

Bon ben hallucinant, y'a rien à faire, tes 2 dernières propositions ne passent pas...

Je garde donc, faute de mieux :

CODE
RewriteRule details-([0-9]+)\.html$  /details.php?id=$1 [L]


Quoi qu'il en soit, encore merci pour ton assistance smile.gif

Si quelqu'un d'autre a déjà rencontré ce problème, qu'il parle ou se taise à jamais wink.gif

Précision complémentaire (peut-être inutile) je travaille sur un sous-domaine, lequel pointe vers un sous-dossier. Et je le rappelle, je suis sur un mut 90plan ovh.

Bon, c'est l'heure de dormir, bonne nuit !
Dan
Si tu veux rendre facultatif le / de début de chaîne, mets ceci:
CODE
RewriteRule ^/?details-([0-9]+)\.html$  /details.php?id=$1 [L]
bertimus
Wow yeah ! Ca marche nickel Dan, merci à toi...

Un tuto de référence en tête où j'aurais pu découvrir ceci par moi-même ?

Si non, juste l'explication pour plus que j'embête le hub avec mes questions de noob wink.gif
Dan
CITATION(bertimus @ mercredi 11 octobre 2006, 07h31) *
Wow yeah ! Ca marche nickel Dan, merci à toi...

Un tuto de référence en tête où j'aurais pu découvrir ceci par moi-même ?

Sur le Hub bien évidemment ! J'en ai écrit quelques-uns sur la réécriture et le fichier .htaccess smile.gif

Vas voir à cette page:
http://www.webmaster-hub.com/publication/_Dan_.html
bertimus
Arf, le truc c'est que je ne retrouve rien sur la signification du /? juste après le ^ de début.

Il veut dire quoi ?

Bon il est 8h aussi, c'est peut-être pas le bon moment wink.gif
captain_torche
/ pour ... slash wink.gif
et ? pour facultatif (0 ou 1 occurence)

Donc, ils définissent un slash facultatif.
Bon réveil wink.gif
bertimus
OK !

1) Merci à vous 3 qui avez pris le temps de vous pencher sur mon cas wink.gif
2) Bravo pour la rapidité de réponse.
3) Bonne journée !

Bertrand
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.