Problème avec plucieures variables et l'urw ...

Nouveau WRInaute
Voila, bonjour à tous, c'est mon premier message, ça fait 2 jours que je suis penché sur l'url rewriting et que j'ai parcouru ce site dans tous les sens.
ça m'a bcp aidé, mais bon, j'ai un cas apparement particulier et j'aurai besoin de l'avis de pros, et je sais qu'il en passe un pacquet en la matière sur ce forum ;-) ...


Donc j'ai décidé de passer l'ensemble du site BonnePioche.com m'appartenant avec des url de type rewriting afin de mieux permettre aux sites référencés dans mon annuaire de se faire connaitre...

Donc voici le truc : j'ai plusieurs types d'url qui doivent etres réécrites :

Cas 1 : index.html?nav=Categorie&Selection=1
Cas 2 : index.html?nav=Categorie&Selection=1&Section=General
Cas 3 : index.html?nav=Categorie&Selection=1&Debut=4&Section=General

Le problème :-( :

Je veux des url de ce type :
Cas 1 : index-Categorie-1.html
Cas 2 : index-Categorie-1-General.html
Cas 3 : index-Categorie-1-4-General.html

Voila mon .htaccess :
RewriteEngine on
RewriteRule ^index-(.*)-(.*)-(.*)-(.*)\.html$ index.html?nav=$1&Selection=$2&Debut=$3&Section=$4 [L]


Et ça marche pas ce truc arf : erreur 500 Internal server error :-(

Par contre, si je met ça dans le htaccess :
RewriteEngine on
RewriteRule ^index-(.*)-(.*)\.html$ index.html?nav=$1&Selection=$2 [L]

Ca marche nickel pour le cas d'url 1 UNIQUEMENT. Les cas 2 et 3 passent à la trappe :-(

Voila, si quelqu'un peut m'aider ou me conseiller des tutoriaux, ça serai vraiment sympas parceque je suis vraiment motivé pour me lancer dans l'url rewriting .. ;-)

@+ Tout le monde, et bon week-end .
Aurélien
 
WRInaute discret
tu ty prend a l'envers !

commence par
Cas 3 : index-Categorie-1-4-General.html
Cas 2 : index-Categorie-1-General.html
Cas 1 : index-Categorie-1.html

voilà c juste de la logik que je teexpliquerai pas cette nuit jsui crevé
 
WRInaute passionné
Pour t'aider, je pense que tu peux essayer d'afficher la variable $QUERY_STRING pour voir ce qu'il y a dans tes variables et que l'UR te cache, tu va surement y voir des tirets en trop
 
Nouveau WRInaute
Ha ok, il y a des tirets en trop, mais alors, comment je peut faire ?
Est-ce que je dois utliser Rewrite Cond pour tester si l'url est de la forme 1, 2, ou 3 ?

Voila, en tout cas, merci pour vos astuces ;-)
 
WRInaute passionné
Pour les tirets en trop, tu n'as plus qu'à faire un str_replace pour remplacer - par rien, et ce dans les pages ou l'url rewrtting à rajouté un tiret.
Avec celà la même forme d'ur fonctionne pour toutes les formes de pages avec les variables 1 2 ou 3 renseignées ou non. Mais il faut juste virer les tirets en trop
 
Nouveau WRInaute
Ha ok, merci bcp.
Je vais essayer et je reviens vous dire si je m'en suis sorti ;-)

Merci bcp pour votre aide en tout cas, j'ai découvert ce site il n'y a pas longtemps, et vraiment j'ai bcp apris grace à vous !
cool !

@+ Aurélien
 
Nouveau WRInaute
Arf, j'y arrive toujours pas, j'ai pas pigé l'astuce avec srt_replace en fait :-(

Pour mes tests, j'ai créé une page dynamique (addition.php) qui se contente d'additionner les variables 0 à 3 ensembles (donc 4 variables).

Dans le htaccess, j'ai mis ça :
RewriteEngine on
RewriteRule ^addition-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ addition.php?ch1=$1&ch2=$2&ch3=$3&ch4=$4 [L]


Dans addition.php j'ai mis ça :
<?
$somme = $ch1+$ch2+$ch3+$ch4;
echo "$ch1 + $ch2 + $ch3 + $ch4 = $somme";
echo "<br><br>Query string :<br> $QUERY_STRING";
?>

On peut meme voir le query string si ça peut aider ...

Le problème, c'est que si je vais à cette url : http://www.creation-online.net/Dev/test ... 1-1-1.html
ça marche nickel (ça additionne 1+1+1+1)

mais si je vais ici :
http://www.creation-online.net/Dev/test ... 1-1-1.html
au lieu que ça m'additionne 1+1+1, ça fais une erreur 404 (qui redirige vers mon index cf httpd.conf)

Donc le problème est que quand je renseigne pas toutes les variables que le UR s'attend à recevoir, il me colle une erreur 404, et meme en reflechissant avec srt_replace() je n'ai pas trouvé comment l'utiliser dans ma page :-(

Merci de votre aide, on vas y arriver héhé ;-)

Bonne soirée à tous (et à toutes, on sait jamais ...)

@+ Aurélien ;-)
 
WRInaute passionné
Essaye de mettre le tiret dans le paramètre, comme ceci

Code:
RewriteRule ^addition([-0-9]+)([-0-9]+)([-0-9]+)([-0-9]+)\.html$ addition.php?ch1=$1&ch2=$2&ch3=$3&ch4=$4 [L]
Sinon tu va avoir -1--1 par exemple
 
Discussions similaires
Haut