Soucis avec mon url rewriting

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

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Soucis avec mon url rewriting

Message le Jeu Nov 17, 2005 20:38

Bonjour à tous,

voilà je vous écris car j'ai quelques petits soucis d'url rewriting. En fait, certaines pages fonctionnent et d'autres pas du tout et à vrai dire, je n'en comprend pas la raison.
Voici un exemple de page de base http://www.c-plus-c.com/scriptannu/mydi ... at-24.html

voici mon fichier .htaccess

RewriteBase /scriptannu/mydir_1_0_1/


RewriteRule ^(.*)-([0-9]*).html$ index.php?dir=$2
RewriteRule ^(.*)-([0-9]*)-ordre([0-9]*).html$ index.php?order=$3&dir=$2
RewriteRule ^(.*)-([0-9]*)-page([0-9]*).html$ index.php?dir=$2&start=$3
RewriteRule ^(.*)-([0-9]*)-page([0-9]*)-ordre([0-9]*).html$ index.php?order=$4&dir=$2&start=$3
RewriteRule ^(.*).html$ index.php?do=$1


Donc voila mon but si vous allez en bas de la page dont le lien est en heut, vous verrez page 1 2 si vous cliquez sur 2 , erreur 404

Le lien de cette page réécrit (on le voit qd on passe la souris dessus) est achat-24-page2.html
Le lien php qui fonctionne (on peut essayer) est index.php?dir=24&start=2

mais pour une raison que j'ignore, ca ne fonctionne pas pourtant la règle de conversion semble bonne non?

RewriteRule ^(.*)-([0-9]*)-page([0-9]*).html$ index.php?dir=$2&start=$3


Je vous remercie d'avance pour votre aide, c'est prèsque la dernière étape avant que je puisse lancer la nouvelle version du site :?

Charles :D


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Ven Nov 18, 2005 0:11

remplace tes * par des +, et surtout mets des \ devant les points....

RewriteRule ^(.*)-([0-9]+)\.html$ index.php?dir=$2
RewriteRule ^(.*)-([0-9]*)-ordre([0-9]+)\.html$ index.php?order=$3&dir=$2
RewriteRule ^(.*)-([0-9]*)-page([0-9]+)\.html$ index.php?dir=$2&start=$3
RewriteRule ^(.*)-([0-9]*)-page([0-9]+)-ordre([0-9]*)\.html$ index.php?order=$4&dir=$2&start=$3
RewriteRule ^(.*)\.html$ index.php?do=$1

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Message le Ven Nov 18, 2005 7:31

Bonjour,

merci pour ce conseil je l'ai appliqué. Malheureusement ca ne fonctionne toujours pas. Néamoins, je l'ai laissé, c'est toujours une source d'ereur en moins :D .

Je ne comprends vraiment pas, j'ai même fait un cas particulier en mettant
RewriteRule ^achat-24-page2.html index.php?dir=24&start=2

et même ca ca ne fonctionne pas!!!!! alors que si je tape index.php?dir=24&start=2 ca fonctionne et que le lien achat-24-page2.html existe!!!!

Merci

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Inscription: 14 Nov 2004

Message le Ven Nov 18, 2005 7:39

si tu es chez ovh :
RewriteRule ^(.*)-([0-9]*)-ordre([0-9]+)\.html$ /index.php?order=$3&dir=$2

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Message le Ven Nov 18, 2005 13:14

Non je suis chez 1 and 1 mais je vais essayer mais je doute que cela provienne de la car la règle RewriteRule ^(.*)-([0-9]*)-ordre([0-9]+)\.html$ /index.php?order=$3&dir=$2 fonctionne sans problème. C'est la même avec la variable start qui ne fonctionne pas.

Merci


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Ven Nov 18, 2005 13:26

rtb a raison. ca vien de tes slash...
Tu le dit toi meme.

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Message le Ven Nov 18, 2005 17:47

Bonjour,

non j'aimerais beaucoup mais malheureusement cela ne vient pas des slash. Ce qui fonctionnait sans fonctionne toujours avec et la ligne qui ne fonctionnait pas ne fonctionne malheureusement toujours pas :cry:

Vous avez d'autres idées d'ou ca pourrait bien venir? La vérité vient d'ailleurs :wink:

Merci

Charles

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Ven Nov 18, 2005 19:11

Essaye d'ajouter le [R] après ta règle foireuse, comme ça tu auras l'URL trafiquée dans ton navigateur et tu auras peut-etre une explication du pourquoi ça marche pas (et si l'URL reste inchangée, c'est que la règle n'est carrément pas appliquée)

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Message le Ven Nov 18, 2005 20:25

Bonne idée, merci beaucoup je vais essayer ca et je vous tiens au courant. J'ai en effet l'empression que la règle n'est pas appliquée. Je vais vérifier cela.

Bon w-e

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Message le Lun Nov 21, 2005 14:31

Voilà, j'ai mis le [R] après la règle qui ne fonctionne pas et l'affichage ne montre que l'url rewritee et ne fait absolument pas la transition vers la requete php. Quelqu'un saurait me dire d'ou cela pourrait provenir? C'est quand même bizarre que les autres règles fonctionnent non?

Merci en tout cas, petit à petit, on avance :D

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Lun Nov 21, 2005 17:45

Tu veux dire que tu vois bien l'URL rewritée comme elle devrait être ? Si je comprends bien, le pb viens de ton script PHP alors, non ?

chhanot
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 16 Jan 2005

Message le Lun Nov 21, 2005 18:17

Oui c'est que je pense aussi. Oui en fait en mettant la commande [R], je vois l'url sous forme mapage.html mais je ne vois pas que ca se "transforme" en index.php?do=....

Tu crois que ca vient du script alors? Ou? Dans la définition de la fonction url rewriting?

function code_url($string)
{
$string = strtolower($string);
$string = str_replace("( |')", "-", $string);
$accent = array('â','à','é','è','ê','î','ô','û','ç');
$sans_accent = array('a','a','e','e','e','i','o','u','c');
$string = str_replace($accent, $sans_accent, $string);
$string = eregi_replace("[^a-z0-9]","-",$string);
$string = eregi_replace("(^(_)*|(_)*$)","",$string);
$string = eregi_replace("(-){2,3}","",$string);
return $string;
}


C'est ce qui me semble le plus logique aussi car sinon, pourquoi les autre lignes du .htaccess fonctionneraient. En tout cas un grand merci, si vous voyez l'erreur, n'hésitez pas, quand on est le nez dedans toute la journée, on finit par ne plus rien voir 8O

Je vais chercher parallelement de mon coté en demandent à la personne qui a écrit le script. Merci bcp

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Lun Nov 21, 2005 20:30

Euh, non, si avec le [R], l'URL qui apparait dans ton navigateur n'est pas celle rewritée en index.php?etc... c'est que le rewrite n'a pas fonctionné, donc que c'est le .htaccess qui merdoit.

Chez moi (avec xampp pour mes tests) ça fonctionne nickel avec ces règles (le [R] est pour vérifier la règle dans mon navigateur) :
Code: Tout sélectionner
RewriteEngine on

RewriteBase /

RewriteRule ^(.*)-([0-9]*).html$ index.php?dir=$2 [R]
RewriteRule ^(.*)-([0-9]*)-ordre([0-9]*).html$ index.php?order=$3&dir=$2 [R]
RewriteRule ^(.*)-([0-9]*)-page([0-9]*).html$ index.php?dir=$2&start=$3 [R]
RewriteRule ^(.*)-([0-9]*)-page([0-9]*)\-ordre([0-9]*).html$ index.php?order=$4&dir=$2&start=$3 [R]
RewriteRule ^(.*).html$ index.php?do=$1 [R]


Je ne vois pas ou peut être ton problème...


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