Question aux experts URL-RW

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


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Question aux experts URL-RW

Message le Mar Aoû 30, 2005 23:19

Voilà, j'ai compris +/- le système, mais je suis face à un mur...

Le problème:

J'ai plusieurs pages dont l'url est sous la forme suivante (1):

-http://www.example.com/repertoire/mot%20mot%20mot.html

Via la règle RewriteRule ^repertoire/(.*).html$ index.php?mots=$1 [L], j'arrivais à exploiter le contenu de "mot%20mot%20mot%20" (puisque $mots = "mot mot mot")

Bref... Je me suis libéré des %20, et ces urls sont à présent sous la forme (2):

-http://www.example.com/repertoire/mot-mot-mot.html

-> via $mots = eregi_replace("-"," ",$mots) j'ai ce que je veux.

Mais...

Je voudrais que lorsque l'url (1) est tapée, ou cliquée sur un site qui la réfère, le visiteur soit redirigé en 301 vers la nouvelle page (2).

J'essaye les règles suivantes, sans succès:

RedirectPermanent ^repertoire/(.*)%20(.*)%20(.*).html$ repertoire/$1-$2-$3.html [L]

RewriteRule ^repertoire/(.*)%20(.*)%20(.*).html$ repertoire/$1-$2-$3.html [L]

RewriteRule ^repertoire/(.*)%20(.*)%20(.*).html$ repertoire/$1-$2-$3.html [R=301]

... y'a t'il un spécialiste dans la salle ???

Merci d'avance :D


rottman
WRInaute passionné
WRInaute passionné
 
Messages: 2121
Inscription: 6 Jan 2004

Message le Mar Aoû 30, 2005 23:41

Essaye ça pour voir ?!
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^repertoire/(.*)%20(.*)%20(.*).html$ repertoire/$1-$2-$3.html [R=301,L]
RewriteRule ^repertoire/(.*).html index.php?mots=$1


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Message le Mar Aoû 30, 2005 23:48

Merci Rottman pour ton aide à presque 1h du mat' ;)

avec ce que tu proposes, il continue d'afficher l'URL avec les %20 :(

En fait si ça se trouve, c'est normal...

Ce que je voudrais c'est que la page se recharge, un peu à la manière d'un redirect 301 par le header, et que la page affichée après redirect soit la page mot-mot-mot.html

(je sais pas si je suis clair là... :wink: )

Pour te dire, j'ai même essayé ça:

.htaccess :

Code: Tout sélectionner
^rewriterule ^repertoire/(.*)%20(.*)%20(.*).html$ redirect_301.php?redirect=$1-$2-$3

redirect_301.php :

Code: Tout sélectionner
<?
$redirect = eregi_replace(" ","-",$redirect);
    header ("HTTP/1.1 301 Moved Permanently", false, 301);
    header ("Location: http://www.example.com/repertoire/".$redirect ."html");
   exit();
?>


rien n'y fait...
Dernière édition par HawkEye le Mar Aoû 30, 2005 23:52, édité 1 fois.


rottman
WRInaute passionné
WRInaute passionné
 
Messages: 2121
Inscription: 6 Jan 2004

Message le Mar Aoû 30, 2005 23:51

Et ça ?

Code: Tout sélectionner
RedirectPermanent ^repertoire/(.*)%20(.*)%20(.*).html$ repertoire/$1-$2-$3.html
RewriteEngine on
RewriteRule ^repertoire/(.*).html index.php?mots=$1



là si ça ne marche pas c'est vraiment bizarre :?

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Mar Aoû 30, 2005 23:54

Code: Tout sélectionner
RewriteRule ^repertoire/(.*)\s(.*)\s(.*)\.html$ repertoire/$1-$2-$3.html [L,R=301]
:roll:


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Message le Mar Aoû 30, 2005 23:55

ah waip... là ça fait quelquechose: Internal Server Error (500) :mrgreen:
(celle de rottman... je teste l'autre now)

NB: vous postez vachement vite pour l'heure qu'il est...

Je m'arrache les cheveux...
Dernière édition par HawkEye le Mar Aoû 30, 2005 23:56, édité 1 fois.

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Mar Aoû 30, 2005 23:56

HawkEye_TpfH a écrit:ah waip... là ça fait quelquechose: Internal Server Error (500) :mrgreen:

Je m'arrache les cheveux...


a qui tu répondais là ??


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Message le Mar Aoû 30, 2005 23:57

à rottman ;)

mais ta solution ne change rien non plus... :(


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Message le Mar Aoû 30, 2005 23:59

bon... je vais aller me coucher... j'en peux plus...

le premier qui trouve gagne... euh... chépa encore quoi mais il le gagne, promis :mrgreen:

merci jeroen !
merci rottman !


rottman
WRInaute passionné
WRInaute passionné
 
Messages: 2121
Inscription: 6 Jan 2004

Message le Mer Aoû 31, 2005 0:21

Le plus simple à faire et qui marcherait 100% sur c'est de seulement mettre dans ton htaccess :

Code: Tout sélectionner
RewriteEngine on
^repertoire/(.*).html$ index.php?mots=$1


et dans ta page index.php :

Code: Tout sélectionner
<?php
if(eregi(" ",$_GET["mots"]))
{
$url_redirect = "repertoire/".eregi_replace(" ","-",$_GET["mots"]).".html";
header("HTTP/1.1 301 Moved Permanently", false, 301);
header("Location: $url_redirect");
}
else
{


.....reste de ta page.....

}
?>






:P


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Message le Mer Aoû 31, 2005 7:56

Hmm ça m'a l'air sympa ça...

Si j'intérpète correctement, tu veux vérifier si la variable $mots contient un espace, et si c'est le cas faire une 301 par le header vers /repertoire/mots.html ou les espace dans $mots sont remplacés par des tirets ?

On va voir ce que ça donne ;)


HawkEye
WRInaute accro
WRInaute accro
 
Messages: 17005
Inscription: 23 Fév 2004

Message le Mer Aoû 31, 2005 8:18

rottman,

t'as le droit de te lever à midi ;)

Ca fonctionne, j'ai juste du corriger

Ca: $url_redirect = "repertoire/".eregi_replace(" ","-",$_GET["mots"]).".html";

par ça: $url_redirect = "http://www.example.com/repertoire/".eregi_replace(" ","-",$_GET["mots"]).".html";

(sinon je tombais dans repertoire/repertoire/)

Merci B-E-A-U-C-O-U-P !

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Mer Aoû 31, 2005 9:07

Bon, j'ai un peu de retard mais je me lève... :wink:
Je crois que j'ai un peu moins "usine à gaz" :
Code: Tout sélectionner
RewriteRule ^repertoire/(.*)[[:space:]](.*)[[:space:]](.*)\.html$ repertoire/$1-$2-$3.html [L,R=301]


rottman
WRInaute passionné
WRInaute passionné
 
Messages: 2121
Inscription: 6 Jan 2004

Message le Mer Aoû 31, 2005 10:38

Oups j'suis le dernier debout :oops:


Si j'intérpète correctement, tu veux vérifier si la variable $mots contient un espace, et si c'est le cas faire une 301 par le header vers /repertoire/mots.html ou les espace dans $mots sont remplacés par des tirets ?


C'est bien ça ;)


Merci B-E-A-U-C-O-U-P !

De rien 8)


rottman
WRInaute passionné
WRInaute passionné
 
Messages: 2121
Inscription: 6 Jan 2004

Message le Mer Aoû 31, 2005 10:46

jeroen a écrit:Bon, j'ai un peu de retard mais je me lève... :wink:
Je crois que j'ai un peu moins "usine à gaz" :
Code: Tout sélectionner
RewriteRule ^repertoire/(.*)[[:space:]](.*)[[:space:]](.*)\.html$ repertoire/$1-$2-$3.html [L,R=301]



Ca va etre la galère si y'a 4, 5, 6 ou 1000 mots séparés par des espaces :lol:


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 :

Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl

  • Analyse des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités