Question aux experts URL-RW

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


HawkEye
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

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 accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

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
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

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 accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

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 accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

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
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

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 accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

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
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

Message le Mar Aoû 30, 2005 23:57

à rottman ;)

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


HawkEye
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

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 accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

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
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

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
Modérateur
Modérateur
 
Messages: 15023
Inscription: Lun Fév 23, 2004 12:33

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 accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

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 accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

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 accro
WRInaute accro
 
Messages: 2097
Inscription: Mar Jan 06, 2004 20:11

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:


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 Answers

  • 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