url rewriting et problème de %20

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

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

url rewriting et problème de %20

Message le Jeu Déc 23, 2004 17:15

Bonjour,
Je précise que je suis débutant en php.
Je construis un site en php et je m'essaie à l'url rewriting, pour un soucis d'efficacité avec google.
J'ai un soucis avec les %20 dans mes url.

Dans ma base, mes noms de catégories sont du type : "Avion de chasse"

code php :
Code: Tout sélectionner
$catdesc = $row["catdescription"];
$row["catname"] = ereg_replace(' ','+', $row["catname"]); 
       $fArray["URL"] = "<a href='cat-" .$row["catname"] . "-" .$row["catid"] . ".html' title='$catdesc'>";
       $fArray["/URL"] = "</a>";


Code template html :
Code: Tout sélectionner
&nbsp%URL%%CATNAME%%/URL%<br>


Mon .htacces :
Code: Tout sélectionner
Options FollowSymlinks
RewriteEngine on
RewriteRule ^cat-([a-z]+)-([0-9]+)\.html$  index.php?catname=$3&catid=$2  [L]


Et avec ça, je me retrouve avec des url du type :
...monsite.com/cat-Avion+de+chasse-2.html
Résultat :
Not Found 404
The requested URL ...monsite.com/cat-Avion+de+chasse-2.html was not found on this server.
D'ailleur ...monsite.com/cat-Avion de chasse-2.html ne fonctionne pas non plus.

Si je retire $catname (pour l'url), tout fonctionne bien, mais je l'ai rajoutée pour le référencement google, il n'y a que $catid qui "passe" sur une autre page.

Comment résoudre ce problème SVP ?
Merci par avance.
Snoopy52

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Déc 23, 2004 17:34

remplace
Code: Tout sélectionner
RewriteRule ^cat-([a-z]+)-([0-9]+)\.html$  index.php?catname=$3&catid=$2  [L]

par
Code: Tout sélectionner
RewriteRule ^cat-([a-zA-Z ]+)-([0-9]+)\.html$  index.php?catname=$3&catid=$2  [L]


l'espace et les majuscules n'étaient pas autorisés par ta formule de rewriting dans le catname...
Dernière édition par JPC le Jeu Déc 23, 2004 18:15, édité 2 fois.

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 17:41

Merci jpc :D
Mais j'ai le même résultat, ça ne fonctionne pas :(

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 17:48

Par contre, j'ai remplacer ton :
Code: Tout sélectionner
RewriteRule ^cat-([a-zA-Z ]+)-([0-9]+)\.html$  index.php?catname=$3&catid=$2  [L]


Par :
Code: Tout sélectionner
RewriteRule ^cat-([a-zA-Z]+)-([0-9]+)\.html$  index.php?catname=$3&catid=$2  [L]


J'ai retiré l'espace après Z sinon j'avais cette erreur :
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.


Sinon le code de mon précédent .htaccess fonctionne très bien avec les majuscules, mais dès que j'ai un nom de cat. avec des espaces (que j'ai remplacer par +) ça ne fonctionne plus.

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Déc 23, 2004 17:49

de rien,
juste pour utoriser tous les caractères, il faudrait plutot mettre .* :
Code: Tout sélectionner
RewriteRule ^cat-(.*)-([0-9]+)\.html$  index.php?catname=$3&catid=$2  [L]

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 17:52

Ah ben avec ça, ça ne fonctionne plus du tout :D

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Déc 23, 2004 17:53

mince alors !

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 17:57

Je ne comprends pas bien pourquoi :
...monsite/cat-Avion-1.html fonctionne très bien (j'affiche bien la sous-cat suivante)
et pas
...monsite/cat-Avion+de+chasse-2.html

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Déc 23, 2004 18:05

je viens d'essayer
Code: Tout sélectionner
RewriteRule ^cat-(.*)-([0-9]+)\.html$  /index.php?catname=$3&catid=$2  [L]

sur mon serveur, j'ai pas de pb...
tu as quoi une erreur 500 ?

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 18:07

nan, 404 not found

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 18:09

le problème doit se situer au niveau de mes "+"
il ne peut pas trouver cat-Avion+de+chasse-2.html
si dans la base de données c'est
Avion de chasse sans les +

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Déc 23, 2004 18:13

pour que tu aies une 404, il faut qu'il essaie de trouver une vraie page xyz.html, donc que l'url demandée ne soit pas interprêtée comme répondant à "^cat-(.*)-([0-9]+)\.html$"
sinon, tu n'aurais pas une 404 mais une page avec des erreurs mysql dedans...

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 18:17

euh... oups, largué là 8O :D

JPC
WRInaute impliqué
WRInaute impliqué
 
Messages: 565
Inscription: 2 Juin 2003

Message le Jeu Déc 23, 2004 18:20

le fait que tu aies une erreur 404 indique qu'il n'a pas trouvé la page que tu as demandé, il est donc allé chercher cat-Avion+de+chasse-2.html sur ton serveur (qui n'existe pas evidement), et pas
index.php?catname=avion%20de%20chasse&catid=2
qui elle existe et qu'il aurait du aller chercher s'il avait reconnu que

cat-Avion+de+chasse-2.html est de la forme ^cat-(.*)-([0-9]+)\.html$

je suis plus clair ?

Snoopy52
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 44
Inscription: 23 Déc 2004

Message le Jeu Déc 23, 2004 18:24

là oui, j'ai compris :)

Par contre, avec .*, même l'url avec un nom de cat. sans espace ne fonctionne plus, alors qu'avec a-zA-Z ça fonctionne.

url rewriting et problème de %20

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