consollection Posté 27 Juin 2006 Posté 27 Juin 2006 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.
TheRec Posté 27 Juin 2006 Posté 27 Juin 2006 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.
consollection Posté 27 Juin 2006 Auteur Posté 27 Juin 2006 Je n'ai pas trouvé réponse à mon problème. Là il n'y a pas de query dynamique mais une redirection d'une URL précise vers une autre déterminée. Une idée?
Pagetronic Posté 27 Juin 2006 Posté 27 Juin 2006 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
consollection Posté 27 Juin 2006 Auteur Posté 27 Juin 2006 RedirectPermanent /spationaute-troglodyte/index.php http://www.pagetronic.info/spationaute-troglodyte/spationaute-troglodyte.tronic Ton exemple n'a pas de query string Par contre petit conseil.. méfis toi des repertoirs à la noix type "23" Quel est le problème?
TheRec Posté 27 Juin 2006 Posté 27 Juin 2006 Je reprends l'exemple dans le message que j'ai cité précédemment : RewriteEngine OnRewriteCond %{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 OnRewriteCond %{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.
Dan Posté 27 Juin 2006 Posté 27 Juin 2006 Ton exemple n'a pas de query string 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 ?
TheRec Posté 27 Juin 2006 Posté 27 Juin 2006 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) : <?phpheader("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.
Pagetronic Posté 29 Juin 2006 Posté 29 Juin 2006 (modifié) 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é 29 Juin 2006 par Pagetronic
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant