Ré écriture url ( ordre )

Mammouth du PHP | 643 Messages

20 déc. 2016, 16:58

Salut les jeunes.
Pour info mes pages sont à la racine de mon site, donc dossier fictif
Bon j'ai trouvé d'où vient le problème mais compte un peut sur vous pour m'aider :)
En fait il y a un moment de ça j'avais ma page produit qui se nommé : annonce_zoom.php qui elle même avait le droit à de l'url rewriting donc:
Mon problème à dut arriver à plus d'un d'entre nous
On se retrouve avec donc monsite.fr/tire.id au lieu de annonce_zoom.php?id=123 ( mieux quand même )
RewriteRule ([a-zA-Z0-9\-]+)/([0-9]+) annonce_zoom.php?url=$1&id=$2
Suite à un conseil peut etre pas terrivble vu les conséquences j'ai créer une nouvelle page mais qui est la même en faite: product_detail.php

Pour le htacces j'ai maitenant : ( le but de celle-ci étant de passé plus de parametre dans l'url)
# -- Annonce detaile (ancienne syntaxe, la bonne selon moi )
RewriteRule ([a-zA-Z0-9\-]+)/([0-9]+) annonce_zoom.php?url=$1&id=$2

# -- Annonce detaile (Nouvelle syntaxe, la bonne selon moi )
RewriteRule ([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([0-9]+).html$ product_detail.php?url=$1&loisir=$2&ville=$3&id=$4

Observation:
Je suis passé de 15.000 pages crawlé selon le GWT à 500 en moyennes.
Donc pas bien content

Sur l'ancienne page j'ai donc fait : ( en gros si il n y a pas de titre on renvoi à l'index sinon on redirige sur la nouvelle syntaxe ) puisque certains url sont référencés avec l'ancienne syntaxe....
<?php
	if (empty($row['titre'])) {
		header('Location: http://site.fr'&#41;;
	}else{
		header("Status: 301 Moved Permanently", false, 301);
		header('Location: http://site.fr/sortie/'.$row["url_rewrite"].'/'.simplification(strtolower($aLoisirs[$row['id_type_loisirs']])).'/'.simplification(strtolower($row["city"])).'/'.$row["id_loisirs"].'.html');
	}
	?>
Si je prend une url peut importe: ( et que je m'amuse à changer l'id ça ne me renvoie pas une erreur mais affiche bien une annonce sans que les autres parametre soit changer ...)
http://site.fr/sortie/urbansoccer-meyla ... 78572.html
Comment procéder selon vous pour corrigé tout ça .... je sais ce n'est pas évident.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

21 déc. 2016, 13:13

salut,

c'est pas clair ton affaire.

est ce que le problème est lié à l'url rewriting ? si l'url qu te semble bon est redirigée vers le bon fichier php (sur lequel tu trouve tes paramètres) je ne vois pas pourquoi on l'incriminerait de prime abord.

est ce que "ancien fichier" fonctionne correctement.
je suppose qu'il n'y a pas que le code indiqué ici parce que sinon il le fait rien ($row n'existe pas donc au mieux une redirection que l'index au pire une erreur php pour la variable qui n'existe pas.

si tu commentes les header (ou mieux en utilisant un débogueur) est-ce que tu as les bonnes données dans $row ?
si tu affiches l'url que tu construit est ce qu'elle te sembles correcte ?
si tu l'utilises "à la main" dans un navigateur est ce que le résultat est celui escompté ? (revient au pour sur le fonctionnement de l'url rewrite).

Je ne peux pas de proposer autres chose qu'une démarche de résolution avec si peux de code (et sans pouvoir tester).

@+
Il en faut peu pour être heureux ......