Aller au contenu

RedirectPermanent


Sujets conseillés

Bonjour, après diverses galère avec l'instalation d'une 301 chez OVH, je me suis lancé dans le RedirectPermanent et tout fonctionne. En vérifiant dans les outils du Hub, je vois même qu'il s'agit en fait d'une redirection 301.

Est-ce que quelqu'un pourrait m'expliquer les tenants et aboutissants de chacune de ces redirections. Y at-il des avantages de l'un par rapport à l'autre ? Y-at-il des inconvénients majeurs ? j'entends / aux moteurs de recherche bien entendu.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Oulala je ne sais pas trop d'où ça vient, mais le RedirectPermanent fait ramer l'accès aux sites !!! mmmm il va falloir que je me replonge dans cette 301 (sous mut OVh, là est le pbm)

Merci de tout de même m'éclaircir sur les 2 différentes redirections

Lien vers le commentaire
Partager sur d’autres sites

Hourra j'ai enfin réussi ma redirection 301 chez OVH.

Pour les explications elles sont peut être nécessaire mais en fait il me semble avoir compris que RedirectPermanent envoyait vers un domaine externe alors que

Rewrite... pour la 301, s'opère intra site.

Je pense que les experts apporteront des précisions.

Sinon je vous laisse le code de mon .htaccess pour une redirection 301 sur un Mediaplan OVH.

Le but était de renvoyer tout ce qui arrivait par www.sousdomaine.monsite.com vers sousdomaine.monsite.com (sans le www)

La syntaxe qui fonctionne est donc

* pour un site en sous-domaine

RewriteEngine on

RewriteCond %{HTTP_HOST} !^sousdomaine\.monsite\.tld$

RewriteRule ^(.*)   http://sousdomaine.monsite.tld/$1  [L,R=301]

* Et pour un site en nom de domaine (là le but est au contraire de forcer l'ouverture du www)

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.monsite\.com$

RewriteRule ^(.*)   http://www.monsite.com/$1  [L,R=301]

Bien entendu tout ça balancé sur le serveur en ASCII

Pour vérifier si tout roule utilisez le vérificateur d'entête du HUB

Lien vers le commentaire
Partager sur d’autres sites

Salut Ruben,

La directive RedirectPermanent n'utilise pas le module mod_rewrite et permet de faire des redirections simples même si ce module n'est pas activé par l'hébergeur.

Une réécriture utilisant mod_rewrite (avec RewriteEngine, RewriteCond et RewriteRule) ne devrait pas être plus lente/rapide, mais le tout est de définir ses règles correctement.

Dans les cas que tu cites (changement de domaine, ou forçage du www), elle sera probablement plus efficace.

Un redirectpermanent fera automatiquement une redirection externe avec un renvoi d'entête 301. Dans le cas d'une règle, le même fonctionnement est obtenu avec les flags [R=301,L] et une URL complètement qualifiée (avec http://). C'est donc fontionnellement équivalent.

Les entêtes 301 sont indispensables si tu veux que les moteurs indexent les nouvelles pages. Avec une 302, la redirection est présumée temporaire, et il n'y a pas de mise à jour des index.

Dan

Lien vers le commentaire
Partager sur d’autres sites

il me semble avoir compris que RedirectPermanent envoyait vers un domaine externe alors que

Rewrite... pour la 301, s'opère intra site.

J'avais justement compris l'inverse :unsure:

Si je lis bien le post de Dan, RedirectPermanent et la redirection par mod_rewrite sont identiques.

Pourquoi voit on le mod_rewrite en majorité lorsqu'il s'agit de posts parlants de 301 ?

Personnelement, je suis toujours passé par RedirectPermanent, mais il faut dire que je n'ai pas eu de cas très compliqué.

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi voit on le mod_rewrite en majorité lorsqu'il s'agit de posts parlants de 301 ?

Le mod_rewrite permet d'appliquer des règles alors que le RedirectPermanent est bien plus trivial.

On utilise RedirecPermanent le plus souvent pour une redirection de toute une arborescence d'un site vers un autre domaine, par exemple dans le cas d'un changement de nom de domaine.

Dans ce cas, il peut s'écrire de plusieurs manières équivalentes:

RedirectPermanent /  http://www.nouveaudomaine.tld/
Redirect Permanent /  http://www.nouveaudomaine.tld/
Redirect 301 /  http://www.nouveaudomaine.tld/

La directive RedirectPermanent n'est qu'un raccourci vers une directive "Redirect [status] ancien nouveau" plus générique. Une directive "Redirect" dont on ne donne pas le statut sera équivalente à RedirectTemp et renverra une entête 302.

RedirectMatch permet l'utilisation d'expressions régulières simples, bien moins puissantes que mod_rewrite.

Par contre, mod_rewrite permet d'utiliser des expressions régulières élaborées et envisager la réécriture d'URLs. Dans le cas d'une redirection externe (utilisation du flag R) on peut donner le statut qui est par défaut 302.

Dan

PS: une liste complète des entêtes http se trouve sur cette page

Lien vers le commentaire
Partager sur d’autres sites

p.s. : à quoi correspond le "connection : closed" dans l'en-tête car je n'ai pas pu le trouver dans la liste de ton lien.

Lorsque le serveur a terminé l'envoi de l'élément demandé, il ferme la connexion. C'est le cas "classique".

Cela peut aussi se produire en cas de "timeout" ou d'erreur sur le serveur.

C'est au client (browser) à gérer ce retour d'info, qui dans le cas d'une erreur lui fera comprendre qu'il faudra réinitier la requête.

Da,

Lien vers le commentaire
Partager sur d’autres sites

Bien bien, ça commence à devenir plus simple.

Maintenant, on était en train de se demander (avec Rubenxela) certaines choses au sujet des 302 mais je pense que ça fera l'objet d'un autre topic.

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...