Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Je touche au but mais...

Poster un nouveau sujet Imprimer cette discussion    Forum -> URL Rewriting et .htaccess   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
bef1rst
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 14 Avr 2005
Messages: 101

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:04    Sujet du message: Je touche au but mais...

Je suis en train de finaliser la mise en place de l'url rewritting sur un petit annuaire.

Les urls sont du type

wifi-suisse.html
wifi-suisse-vaud.html
wifi-suisse-vaud-Lausanne.html
et j'ai programmé mes liens pour avoir ceci au nivau inférieur (qui est le dernier) :
wifi-suisse-vaud-Lausanne-agip.html
Le codage des liens est ok, pas de soucis. Mais mes règles d'url rewritting ne fonctionnent pas jusqu'au but :

RewriteEngine on
(1) RewriteRule ^wifi/wifi-([a-z]+)\.html$ wifi/canton.php?pays=$1 [L]
(2) RewriteRule ^wifi/wifi-([a-z]+)-([a-z]+)\.html$ wifi/ville.php?pays=$1&canton=$2 [L]
(3) RewriteRule ^wifi/wifi-(.*)-(.*)-(.*)\.html$ wifi/hotspot.php?pays=$1&canton=$2&ville=$3 [L]
(4) RewriteRule ^wifi/wifi-([a-z]+)-([a-z]+)-([a-z]+)-([a-z]+)\.html$ wifi/detail-hotspot.php?pays=$1&canton=$2&ville=$3&hotspot=$4 [L]

En effet, tout va bien jusqu'a la ligne 3 mais aprés c'est la catastrophe. En essayant de débuger, je vois que les parametres "pays" et "canton" restent collés. Vous pouvez voir le résultat sur http:**www.bef1rst.com/wifi/wifi-suisse-vaud-Lausanne.html .

Il ne me manque que cette dernière étape pour appeler convenablement ma page detail-hotspot.php mais je ne peux pas.... Alors qu'elle marche très bien quand je l'appelle de manière dynamique, avec mes paramètres...

Pouvez vous m'aider ... ? Crying or Very sad

PS: une dernière petite chose, je n'utilise que du texte dans mes paramètres. Quelle est la différence entre ([a-z]+) et (.*) ?
 
bef1rst Visiter le site web du posteur
dasikund
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 28 Avr 2005
Messages: 134
Localisation: Paris

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:14    Sujet du message: Je touche au but mais...

Salut,

Si je ne m'abuse, ([a-z]+) prend de 1 à "l'infini" caractère(s) alphabétique(s), et (.*) prend de 0 à "l'infini" n'importe quel(s) caractère(s).

En ce qui concerne ton problème, rien ne me choque dans l'écriture des règles. Si tu ne l'as pas fait, essaie de mettre les (.*) dans ta 4ème ligne, sinon essaie de mettre tes lignes dans l'autre sens, c'est-à-dire de la plus longue à la plus courte, paraît-il que c'est mieux.

A+

Doug
 
dasikund Visiter le site web du posteur
bef1rst
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 14 Avr 2005
Messages: 101

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:25    Sujet du message: Je touche au but mais...

Salut,

merci pour la précision pour la différence entre les deux synthaxes.

J'ai tout essayé dans l'ordre des lignes ainsi que les combinaisons entre les deux synthaxes sur toutes les lignes mais pas de changements, les 2 premiers paramètres restent collés (suisse-vaud) dans mon exemple... alors qu'ils sont bien différenciés dans l'url rewritting précédent... Louche.

Une autre idée ? Je suis preneur.
 
bef1rst Visiter le site web du posteur
dasikund
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 28 Avr 2005
Messages: 134
Localisation: Paris

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:31    Sujet du message: Je touche au but mais...

Ok, je n'avais pas vu le lien que tu as donné. En fait ton URL rewriting fonctionne, c'est peut-être un problème dans le code qui génère l'arborescence, non ?

Si oui, balance le, on jettera un petit coup d'oeil.

Doug
 
dasikund Visiter le site web du posteur
GAMING ZONE
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Aoû 2004
Messages: 533
Localisation: plus là

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:41    Sujet du message: Je touche au but mais...

(1) RewriteRule ^wifi/wifi-([a-z]+)\.html$ wifi/canton.php?pays=$1 [L]
(2) RewriteRule ^wifi/wifi-([a-z]+)-([a-z]+)\.html$ wifi/ville.php?pays=$1&canton=$2 [L]
(3) RewriteRule ^wifi/wifi-(.*)-(.*)-(.*)\.html$ wifi/hotspot.php?pays=$1&canton=$2&ville=$3 [L]
(4) RewriteRule ^wifi/wifi-([a-z]+)-([a-z]+)-([a-z]+)-([a-z]+)\.html$ wifi/detail-hotspot.php?pays=$1&canton=$2&ville=$3&hotspot=$4 [L]

je dirais que ta 3eme regle n'est pas bonne ...
(.*) signifie n'importe qu'elle caractere donc pet comprendre le - et donc apelle hotspot.php et non detail-hotspot.php
je te conseillerais de faire comme les autres lignes, pour la 3eme regle
soit
(3) RewriteRule ^wifi/wifi-([a-z]+)-([a-z]+)-([a-z]+)\.html$ wifi/hotspot.php?pays=$1&canton=$2&ville=$3 [L]
 
GAMING ZONE Visiter le site web du posteur
bef1rst
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 14 Avr 2005
Messages: 101

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:48    Sujet du message: Je touche au but mais...

ville.php :

<?
include "connexion.php";

$pays = $_GET['pays'];
$canton = $_GET['canton'];

echo $pays;
echo ' > ';
echo $canton;
echo '<br><br>';

$result = mysql_query("SELECT nom_ville FROM wifi_ville WHERE canton_ville='$canton'");

while ( $row = mysql_fetch_array($result))

{
echo '<a href="wifi-';
echo $pays;
echo '-';
echo $canton;
echo '-'.$row[nom_ville]. '.html">' .$row[nom_ville]. '</a><br><br>' ;
}

mysql_close();
?>

hotspot.php :

<?
include "connexion.php";

$pays = $_GET['pays'];
$canton = $_GET['canton'];
$ville = $_GET['ville'];

echo $pays;
echo ' > ';
echo $canton;
echo ' > ';
echo $ville;
echo '<br><br>';

$result = mysql_query("SELECT nom_hotspot FROM wifi_hotspot WHERE ville_hotspot='$ville'");

while ( $row = mysql_fetch_array($result))

{
echo '<a href="wifi-';
echo $pays;
echo '-';
echo $canton;
echo '-';
echo $ville;
echo '-'.$row[nom_hotspot]. '.html">' .$row[nom_hotspot]. '</a><br><br>' ;
}

mysql_close();
?>

et detail-hotspot.php :

<?
include "connexion.php";

$pays = $_GET['pays'];
$canton = $_GET['canton'];
$ville = $_GET['ville'];
$hotspot = $_GET['hotspot'];

echo $pays;
echo ' > ';
echo $canton;
echo ' > ';
echo $ville;
echo ' > ';
echo $hotspot;
echo '<br><br>';

$result = mysql_query("SELECT nom_hotspot,adresse_hotspot,plan_hotspot FROM wifi_hotspot WHERE nom_hotspot='$hotspot'");

while ( $row = mysql_fetch_array($result))

{
echo 'Hotspot : '.$row[nom_hotspot].'<br>' ;
echo 'Adresse : '.$row[adresse_hotspot].'<br>';
echo 'Plan : <a href='.$row[plan_hotspot].'>plan</a><br><br>';
}

mysql_close();
?>

Je pense que mes liens sont bien construits. J'ai toujours pris le même modele de page en page (ville.php, hotspot.php et detail-hotspot.php). Je vois mes liens qui sont bien ecrits dans mon navigateur (essaye en pointant ta souris sur mes liens, exemple : agip , http:**www.bef1rst.com/wifi/wifi-suisse-vaud-Lausanne.html). Pour moi, le problème vient plus de l'interpretation au niveau du fichier .htaccess ... Mais je ne vois toujours pas l'erreur...
 
bef1rst Visiter le site web du posteur
dasikund
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 28 Avr 2005
Messages: 134
Localisation: Paris

URL permanente de ce messagePosté le : Mar Mai 24, 2005 17:59    Sujet du message: Je touche au but mais...

Oui, en effet, c'est bizarre...

Le problème ne vient pas de ton script et comme le souligne GAMING ZONE, le "-" peut être embarqué dans le (.*). Mais ceci est bizarre également, en effet, il trouve la bonne page, donc quelque part, c'est que ça fonctionne au niveau de l'URL rewriting.

J'avoue être à court d'idée pour t'aider malheureusement.

Juste, tu peux mettre des antislashes devant tes slashes dans tes règles (mais uniquement la partie \.html ; celle entourée de "^" et "$"), ça ne mange pas de pain.

Doug
 
dasikund Visiter le site web du posteur
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2269

URL permanente de ce messagePosté le : Mar Mai 24, 2005 18:03    Sujet du message: Je touche au but mais...

Sans lire exactement tes règles, je dirais qu'il faut dans un premier temps les inverser (de l'url la plus longue à la plus courte).
ca devrait résoudre ton problème.
 
jeroen
bef1rst
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 14 Avr 2005
Messages: 101

URL permanente de ce messagePosté le : Mar Mai 24, 2005 21:25    Sujet du message: Je touche au but mais...

Miracle ! J'ai bidouillé un peu ma synthaxe et ça marche. J'en ai profité pour remettre les lignes dans un autre ordre.

Version définitive (que je vais backuper de ce pas) :

RewriteEngine on
RewriteRule ^wifi/wifi-(.*)-(.*)-(.*)-(.*)\.html$ wifi/detail-hotspot.php?pays=$1&canton=$2&ville=$3&hotspot=$4 [L]
RewriteRule ^wifi/wifi-(.*)-(.*)-(.*)\.html$ wifi/hotspot.php?pays=$1&canton=$2&ville=$3 [L]
RewriteRule ^wifi/wifi-([a-z]+)-([a-z]+)\.html$ wifi/ville.php?pays=$1&canton=$2 [L]
RewriteRule ^wifi/wifi-([a-z]+)\.html$ wifi/canton.php?pays=$1 [L]

Merci a vous tous pour votre aide, c'est très sympa !
 
bef1rst Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> URL Rewriting et .htaccess Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort