Aller au contenu

RewriteRule, v2 d'un site et variables


Sujets conseillés

Bonjour,

je suis en train de monter la v2 d'un site d'annuaire.

Je veux diriger de façon permanente mes pages.

Voici un exemple :

la,categorie.php?choix=23 en -http://www.annuaire.com/23/go/agences-de-voyage.html

Il y aura par la suite une routine pour faire fonctionner la seconde adresse.

J'ai une 60éne de page de ce type.

J'ai essayé sans aucun succès ces informations :

RewriteRule ^la,categorie\.php\?choix=23$ http://www.annuaire.com/23/go/agences-de-voyage.html [R=permanent]
RewriteRule ^la,categorie\.php\?choix=23 http://www.annuaire.com/23/go/agences-de-voyage.html [R=permanent]
RewriteRule ^la,categorie\.php?choix=23 http://www.annuaire.com/23/go/agences-de-voyage.html [R=permanent]
RewriteRule ^la,categorie\.php?choix=23$ http://www.annuaire.com/23/go/agences-de-voyage.html [R=permanent]
RewriteRule ^la,categorie\.php\?choix\=23$ http://www.annuaire.com/23/go/agences-de-voyage.html [R=permanent]

Par contre ceci fonctionne :

RewriteRule ^la,categorie\.php http://www.annuaire.com/23/go/agences-de-voyage.html [R=permanent]

Avez-vous une idée? Chaque choix doit être dirigé vers une url spécifique.

Je suis sur OVH en mutualisé.

Cordialement,

Ben-J

EDIT TheRec, Modérateur > Merci d'utiliser les BB Codes pour présenter tes codes, ton message a été édité dans ce sens. Si tu as besoin d'aide à ce propos, clique sur le lien "Aide BB Code" qui se trouve en dessous de la liste d'émoticons lorsque tu rédiges un message.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

je te conseille la lecture de ce sujet (surtout les dernières interventions ou se trouve la réponse), il traite du même problème que le tiens à mon avis.

La deuxième partie te ta RewriteRule étant une URL, la redirection avec statut 301 (permanent) se fera toute seule... et je ne suis pas certain que le flag "R" puisse prendre comme valeur "permanent"... il faut lui donner un nombre de statut : 301, 302, etc.

Lien vers le commentaire
Partager sur d’autres sites

Etrange ton htacess...

moi j'utilise ca chez OVH

RedirectPermanent /spationaute-troglodyte/index.php http://www.pagetronic.info/spationaute-troglodyte/spationaute-troglodyte.tronic

Par contre petit conseil.. méfis toi des repertoirs à la noix type "23"

parce que je te sent bien revenir nous faire un post du genre :

Mon site n'est plus indexé après un rewrite :whistling:

Lien vers le commentaire
Partager sur d’autres sites

RedirectPermanent /spationaute-troglodyte/index.php http://www.pagetronic.info/spationaute-troglodyte/spationaute-troglodyte.tronic

Ton exemple n'a pas de query string :wacko:

Par contre petit conseil.. méfis toi des repertoirs à la noix type "23"

Quel est le problème? :unsure:

Lien vers le commentaire
Partager sur d’autres sites

Je reprends l'exemple dans le message que j'ai cité précédemment :

RewriteEngine On
RewriteCond %{QUERY_STRING} ^page=(.+)$
RewriteRule ^index.php$ %1.php? [L]

La partie (.+) correspond au sous-masque "au moins 1 caractère quel qu'il soit"... Si ton but à toi est de ne faire correspondre que "23", met le simplement "en dur" :

RewriteEngine On
RewriteCond %{QUERY_STRING} ^choix=23$
RewriteRule ^la,categorie\.php$ http://www.annuaire.com/23/go/agences-de-voyage.html? [L]

Le seul moyen d'analyser la QueryString depuis un fichier .htaccess c'est d'utiliser RewriteCond... RewriteRule, ne prend pas en compte la QueryString lors de l'analyse de l'expression régulière (c'est pour cela que seule ta dernière règle fonctionnait dans les exemples que tu as cités).

Si tu as besoin d'explications sur le déroulement des directives RewriteCond et RewriteRule tu as le manuel Apache à ce sujet et le message que j'ai cité précédemment où j'explique la syntaxe que j'ai utilisée.

Et pour citer le manuel lui-même, un RedirectPermanent ne peut pas faire cela :

mod_alias is designed to handle simple URL manipulation tasks. For more complicated tasks such as manipulating the query string, use the tools provided by mod_rewrite.
Lien vers le commentaire
Partager sur d’autres sites

Ton exemple n'a pas de query string :wacko:

Lors de l'utilisation du RedirectPermanent, pas besoin du QUERY_STRING, il est ajouté automatiquement par Apache.

J'utilise cela pour rediriger les différents TLD de webmaster-hub vers le .com

Par exemple, pour ce post sur le .eu:

http://www.webmaster-hub.eu/index.php?s=&a...st&p=181685

Et il y a bien une query_string, non ? ;)

Lien vers le commentaire
Partager sur d’autres sites

Après relecture de ton message, si tu dois rediriger 60 pages vers chaque fois une URL différente et que les paramètre de la nouvelle URL ne se trouvent pas dans l'ancienne URL tu as deux choix :

  • Tu fais 60 fois la règle que je t'ai indiquée en donnant la nouvelle URL à chaque fois... et en changeant la condition sur le paramètre "choix"... ce n'est pas vraiment la solution que je te conseille...à chaque requêtes toutes les conditions seront analyées (enfin à moin qu'une des conditions ait été validée).
  • Tu es capable de composer ton URL à partir de ta base de données et tu pourras effectuer cette redirection depuis PHP... une redirection peut se faire grâce à la fonction header.

Un exemple de redirection avec code 301 (histoire de conserver ton PR) :

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.annuaire.com/".$id_de_la_categorie."/go/".$nom_de_la_categorie.".html");
exit();
?>

Ce code doit interpréter avant que tout autre caractère ne soit envoyé au navigateur de ton visiteur...tu auras plus de précision dans le manuel PHP. Si tu veux faire simple il suffit de remplacer le contenu de "la,categorie.php"...tu récupères les informations nécessaires depuis ta base de données par exemple grâce aux paramètre donnée par l'URL ($_GET['choix'] en l'occurrence) et tu effectues la redirection.

Lien vers le commentaire
Partager sur d’autres sites

Pour les repertoires, j'ai un ami qui s'arrache les cheveux pour faire indexer sont dotclear qui a des url à la noix comme les tiennes..

Google trainerait la pate pour reconnaitre les divers thématiques du site..

Fais comme tu veux, mais moi maintenant quitte à rewrite je rewrite proprement..

-http://www.vins-france.info/

Je ne peux pas te le prouver mais il se dit la meme chose sur des forums US selon lui

Modifié par Pagetronic
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...