Redirection d'une URL sans / à la fin vers une avec le / ...

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

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Redirection d'une URL sans / à la fin vers une avec le / ...

Message le Lun Mai 26, 2008 18:20

Bonjour,

j'essaye de créer une règle et j'avoue que je ne suis pas encore un expert dans le domaine donc je demande votre aide.
Désolé si la question à déjà été posé.

voila la règle que je souhaiterais établir:

toutes les URLs ne se terminant pas par / ou .html les rediriger avec la meme URL mais avec un / à la fin


voila ce que ça donne:

monsite.com/tutu/toto => monsite.com/tutu/toto/
par contre

monsite.com/tutu/toto.html ou
monsite.com/tutu/toto/
ne sont pas redirigé

tout simplement.

j'ai commencé en faisant ça:

Code: Tout sélectionner
RewriteRule ^(([a-zA-Z]|[-])*)$             /$1/      [R=301]

Ca fonctionne très bien à un niveau or à plusieurs niveau ça merde.

Donc si quelqu'un aurait un règle générique ce serait super sympas.

D'avance merci.

PS: Pour les curieux je souhaite cette modif pour des raisons de référencement.
Dernière édition par bucheron le Mar Mai 27, 2008 13:46, édité 1 fois.

Lomic2
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: 5 Mai 2008

Message le Lun Mai 26, 2008 22:45

je ne sais pas trop pour ta règle mais je t'invite à lire ce sujet: http://www.webrankinfo.com/forums/viewtopic_93989.htm qui aborde le point du "/" en fin d'URL et qui semble dire que ça ne sert pas à grand chose de l'ajouter s'il n'est pas là

sinon je n'ai pas compris pourquoi tu veux réécrire tes URL avec un "/" à la fin, si tes visiteurs saisissent l'URL sans / ils arrivent de toutes façon sur la même page, non?

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Lun Mai 26, 2008 23:27

Lomic2 a écrit:je ne sais pas trop pour ta règle mais je t'invite à lire ce sujet: http://www.webrankinfo.com/forums/viewtopic_93989.htm qui aborde le point du "/" en fin d'URL et qui semble dire que ça ne sert pas à grand chose de l'ajouter s'il n'est pas là

sinon je n'ai pas compris pourquoi tu veux réécrire tes URL avec un "/" à la fin, si tes visiteurs saisissent l'URL sans / ils arrivent de toutes façon sur la même page, non?


non, les URLs sans / accèdent à une 404.
Et la redirection permet que si n'importe quel site fais un backlink sur une URL de mon site avec ou sans / l'url de la page finale est la meme.
A l'inverse si on ne le fais pas. Il y a possibilité de duplicate content.

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Mar Mai 27, 2008 10:42

Personne pour m'aider ???


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mar Mai 27, 2008 12:04

si il s'agit d'un répertoire physique tu peux faire :
Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$   /$1/ [L]

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Mar Mai 27, 2008 13:45

webmasterlamogere a écrit:si il s'agit d'un répertoire physique tu peux faire :
Code: Tout sélectionner
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$   /$1/ [L]


Malheureusement ce sont des répertoire virtuels.

J'ai quand meme testé le code et à la place de l'option L j'ai mis une redirection 301.
Et comme tu l'as dit ça n'a pas fait le travail demandé.

Meme si je trouve ton idée top et que je n'ai pas compris pourquoi il ne fonctionne pas si ce n'est pas un rep physique.

De plus il faudrait rajouter dans la règle sans / et .html à la fin


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mar Mai 27, 2008 16:48

Si tu as une règle de réécriture qui gère les .html tu peux supprimer la première ligne.
Code: Tout sélectionner
RewriteRule \.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*[^/])$   /$1/ [R=301,L,QSA]

la première ligne indique que si l'url se termine par .html, on ne fait pas de réécriture (signe -) et on s'arrete (flag L)
La deuxième ligne indique qu'on test que l'url ne correspond pas à un répertoire (!-d) pour appliquer la règle suivante.
La dernière ligne indique que l'url ne se termine pas par un /

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Mar Mai 27, 2008 16:51

Essaie celle ci:

Code: Tout sélectionner
RewriteCond $1 !html$
RewriteRule ^(.*[^/])$   $1/ [L]

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Mar Mai 27, 2008 17:18

je viens de tester les 2 solutions.

La 1ere fonctionne mais uniquement pour 1 niveau.
Le problème c'est qu'au niveau suivant c'est le plantage complet vu qu'on s'arrete au 1er slash rencontrer

la 2e soution fonctionne presque j'ai du un peu la changer
Code: Tout sélectionner
RewriteCond $1 !html$
RewriteRule ^(.*[^/])$   /$1/ [R]


pour combler le problème du 1er niveau j'ai essayé ça
Code: Tout sélectionner
RewriteRule \.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)[^/]$   /$1/ [R=301,L,QSA]


mais la ça plante complet.

Une idée ?

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Mer Mai 28, 2008 10:24

peut on l'adapter pour que les règles fonctionnent à n'importe quel niveau ?

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Mer Mai 28, 2008 10:57

Je ne suis pas sûr de comprendre.

Est-ce que ta modification de ma règle fonctionne?

Merci.

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Mer Mai 28, 2008 11:10

t es modifications fonctionnent en faisant une légère adaptation

Code: Tout sélectionner
RewriteCond $1 !html$
RewriteRule ^(.*[^/])$   /$1/ [R]


Par contre ça ne marche que pour 1 seul niveau.
Ex:

monsite.com/toto => ça marche
monsite.com/toto/tutu => ça ne marche pas

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Mer Mai 28, 2008 11:13

Ca fait quoi dans le deuxième cas?

bucheron
WRInaute discret
WRInaute discret
 
Messages: 130
Inscription: 16 Juin 2006

Message le Mer Mai 28, 2008 11:33

dans le 2e cas ça me ramène à la page sans réecriture d'url .

Exemple
monsite.com/toto/tutu => monsite.com/toto/tutu.php

La page physique sur le serveur


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mer Mai 28, 2008 12:48

tu veux dire que le fichier monsite.com/toto/tutu.php existe?
si c'est ça c'est surement un problème de négociation de contenu actif. essaye d'ajouter la ligne :
Code: Tout sélectionner
Options -MultiViews

Redirection d'une URL sans / à la fin vers une avec le / ...

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

  • Tester la validité d'un lien
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Liste 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.
  • Transformer des textes non cliquables en liens
    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