Ré-écriture ne fonctionne pas ,j'ai oublié une étape

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Ré-écriture ne fonctionne pas ,j'ai oublié une étape

Message le Lun Mai 10, 2004 17:55

Bonjour

voila le script de base est sous cette forme
http://www.phpbb-graph.com/templates.ph ... plate&id=1

Je veut appeler cette page via
http://www.phpbb-graph.com/templates-de ... ate-1.html

Et là problème , si je fais
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?action=details_template&id=1 [L]


vca fonctionne mais si je fais
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?action=details_template&id=$1 [L]


Ca plante
Erreur SQLUnknown column 'details_template' in 'where clause'

il récupére donc pas l'ID , mais j'avou jcapte plus rien là :(

Merci d'avance
Dernière édition par Blaster le Lun Mai 10, 2004 19:49, édité 2 fois.


macjee
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 29 Avr 2003

Message le Lun Mai 10, 2004 18:34

En fait tu devrais plutot écrire à mon avis

RewriteEngine on
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?action=$1&id=$2 [L]


Lorsque tu as des parenthèses à gauche, la première va à $1, la deuxième $2,....

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Lun Mai 10, 2004 19:14

Ca marche !
Merci beaucoup de ton aide :)

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Lun Mai 10, 2004 19:52

Encore un problème :(

pour passer de templates.php a templates.html aucun soucis j'ai fais ca
Code: Tout sélectionner
RewriteRule ^templates\.html$ templates.php [L]


Mais pour passer de page en page normalement j'ai
templates.php?viewpage=6

J'ai donc fais
Code: Tout sélectionner
RewriteRule ^templates-(.*)-\.html$ templates.php?viewpage=$1 [L]


Mais si je fais
templates-viewpage-6.html
ca change rien , on reste sur la première page :?


Dr DLP
WRInaute impliqué
WRInaute impliqué
 
Messages: 673
Inscription: 28 Juin 2003

Message le Lun Mai 10, 2004 19:57

Normal , inverse l'ordre des commandes : mets
Code: Tout sélectionner
RewriteRule ^templates-(.*)-\.html$ templates.php?viewpage=$1 [L]
avant
Code: Tout sélectionner
RewriteRule ^templates\.html$ templates.php [L]
:wink:

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Lun Mai 10, 2004 20:07

Merci , mais malheureusement ca ne fonctionne pas :(

Pour l'instant dans mon .htaccess j'ai ca :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates-(.*)-\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates\.html$ templates.php [L]


L'ordre est bon là non ?
En tout cas ca marche pour templates.html et templates-details_template-ID.html


macjee
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 29 Avr 2003

Message le Lun Mai 10, 2004 20:38

Blaster a écrit:Merci , mais malheureusement ca ne fonctionne pas :(

Pour l'instant dans mon .htaccess j'ai ca :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates-(.*)-\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates\.html$ templates.php [L]


L'ordre est bon là non ?
En tout cas ca marche pour templates.html et templates-details_template-ID.html


Tu as une erreur si tu veux faire ça :

templates-viewpage-6.html

Le code doit être
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?$1=$2 [L]

ou encore

RewriteRule ^templates-viewpage-(.*)\.html$ templates.php?viewpage=$1 [L]

Le code entier car l'ordre est important !

RewriteRule ^templates-viewpage-(.*)\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates-(.*)-(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates\.html$ templates.php [L]

Attention car si tu mets la 1er regle aprés la 2eme alors tu vas partir sur templates.php?action=$1&id=$2 pour ton viewpage....

a+

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Lun Mai 10, 2004 21:31

Merci beaucoup macjee c'etait bien ca :D

maintenant autre soucis avec une fonction mais rien a voir avec le sujet.
Je verrais ca demain avec mon formateur ( développeur ) :)

Je met pas réglé , je risque de revenir plus tard ... encore merci de ton aide :D

Bonne nuit

Lord Farquaad
WRInaute discret
WRInaute discret
 
Messages: 124
Inscription: 1 Mai 2004

Message le Lun Mai 10, 2004 21:37

Pensez à utiliser mon vérificateur htaccces ;-)
http://htaccesscheck.notredomaine.net/

Mais bon perso je mettrais:
Code: Tout sélectionner
RewriteRule ^templates-viewpage-([0-9]+)\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates-(.+)-(.+)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates\.html$ templates.php [L]
En tout cas elle est belle la faille de sécurité si t'avais ça:
Code: Tout sélectionner
Erreur SQLUnknown column 'details_template' in 'where clause'
:roll: et normalement elle doit toujours y être...

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Lun Mai 10, 2004 22:36

Comment ca ?

Je suis preneur si ta des conseils et un remède alors :D

Merci


Dr DLP
WRInaute impliqué
WRInaute impliqué
 
Messages: 673
Inscription: 28 Juin 2003

Message le Lun Mai 10, 2004 22:47

Probablement que tu utilises une requête SQL en fonction de l'action récupérée depuis l'URL .
A la truffe , c'est l'id que tu récupères pour aller chercher le thème .
La faille ici est de type injection SQL .
Pour la prévenir , fais un intval() sur ton $HTTP_GET_VARS['id'] , ça t'évitera de mauvaises surprises .

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Mar Mai 11, 2004 9:54

Ok merci je vais y remédier , je savais pas que ca ouvrais une faille :?
donc thanks :D

Sinon pour en revenir au .htaccess
encore un soucis :(

Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-viewpage_(.*)\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates_lettre_(.*)\.html$ templates.php?lettre=$1 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]
RewriteRule ^templates\.html$ templates.php [L]


c'est la ligne là qui pose problème
Code: Tout sélectionner
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]


Donc je récupére par lettre PUIS pour aller a la page suivante ca donnerais donc
templates_lettre_X.html ( pour aller a la lettre X
et templates_lettre_X_viewpage_6.html ( Pour aller a la deuxieme page de la lettre X )
le second pose problème , ca me dis qu'il y a aucun template .
Si quelqu'un voit pourquoi et ou est mon erreur ...

Car j'ai chercher , plusieurs essai sans résultat [/code]

Lord Farquaad
WRInaute discret
WRInaute discret
 
Messages: 124
Inscription: 1 Mai 2004

Message le Mar Mai 11, 2004 20:25

Si tu avais utilisé le htaccess checker, tu saurais que
Code: Tout sélectionner
templates_lettre_X_viewpage_6.html
est réécrit en
Code: Tout sélectionner
templates.php?lettre=X_viewpage_6
:roll:

Rappèle toi que (.*) désigne une chaine d'une longueur quelconque (même nulle) contenant nimporte quel carractère (dont les "_"). Donc si tu veux que ton truc marche, tu dois corriger tes règles en:
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-viewpage_(.*)\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates_lettre_([a-z]+)\.html$ templates.php?lettre=$1 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]
RewriteRule ^templates\.html$ templates.php [L]

Blaster
WRInaute discret
WRInaute discret
 
Messages: 66
Inscription: 14 Avr 2004

Message le Mer Mai 12, 2004 8:24

Ca ne fonctionne pas non plus
idem "Il n'existe pas de template pour cette lettre" si je remplace bien par tte tes lignes , je n'ai plus pour avoir lettre par lettre. :(


macjee
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 29 Avr 2003

Message le Mer Mai 12, 2004 8:59

Salut c'est normal

Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-viewpage_(.*)\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates_lettre_(.*)\.html$ templates.php?lettre=$1 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]
RewriteRule ^templates\.html$ templates.php [L]


Regarde ces deux lignes que tu as

Code: Tout sélectionner
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]


tu as la même regles ^templates_(.*)_(.*)\.html$ sur ces deux lignes !! Impossible de faire la différence, donc ta deuxième ligne ne sert strcitement à rien.

Tu dois la remplacer par

Code: Tout sélectionner
RewriteRule ^templates_lettre_(.*)_viewpage_([0-9]*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]


Je pense que ça devrait marcher (j'ai pas testé) donc le code final.

Code: Tout sélectionner
RewriteEngine on
RewriteRule ^templates-viewpage_(.*)\.html$ templates.php?viewpage=$1 [L]
RewriteRule ^templates_lettre_(.*)_viewpage_([0-9]*)\.html$ templates.php?lettre=$1&viewpage=$2 [L]
RewriteRule ^templates_lettre_(.*)\.html$ templates.php?lettre=$1 [L]
RewriteRule ^templates_(.*)_(.*)\.html$ templates.php?action=$1&id=$2 [L]
RewriteRule ^templates\.html$ templates.php [L]

Ré-écriture ne fonctionne pas ,j'ai oublié une étape

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités