Aller au contenu

monsite.com vers www.monsite.com


Julien_B

Sujets conseillés

Si vous voulez le faire de manière transparente, vous pouvez utiliser l'URL rewriting.

Par contre, si vous voulez que lorsque votre visiteur entre une adresse, elle soit visiblement transformée, alors il faut utiliser la méthode que je vous ai indiquée.

C'est n'importe quoi ! :evil:

Pour passer de webmaster-hub.(fr|org|info|be...) à www.webmaster-hub.com, je fais bien une réécriture d'URL avec un flag R=301.

Et il y a bien un changement d'URL apparent.

Quant à la nécessité de passer du domaine sans le www au domaine avec le www, ton correspondant me semble ne pas connaître le référencement et les pénalités pour contenu dupliqué.

Les sites -http://easywouebe.com/ et http://www.easywouebe.com/ sont vus par les moteurs comme deux sites distincts avec le même contenu, et la pénalité peut s'appliquer.

Un petit clic sur http://webmaster-hub.fr (.fr sans le www) pour visualiser ;)

L'outil du hub montre bien une redirection permanente vers http://www.webmaster-hub.com

Je ne conteste pas que ce soit un bon hébergeur, répondant rapidement, mais il faudrait voir à ne pas raconter n'importe quoi sous le prétexte de rapidité.

Pour moi il faut qu'il révise sa copie !

Dan

<edit: j'ai rendu le lien vers le site sans www inactif pour que Thick ne soit pas une démonstration vivante de mes affirmations>

Lien vers le commentaire
Partager sur d’autres sites

mdr

Voilà ça m'apprendra à ne pas te consulter avant...

Bon c'est clair que ça serait bien mieux s'ils pouvaient répondre vite et si possible pas des aneries :P

D'ailleurs, c'est aussi pour ça que j'ai posté car je ne comprenais rien de ce qu'il me disait.

Merci pour les précisions.

Je les relance et je reviens raconter :lol:

Modifié par thick
Lien vers le commentaire
Partager sur d’autres sites

Il faut impérativement rediriger le domaine sans www vers le sous-domaine www, sauf s'ils ont un contenu différent.

Une alternative, mais que j'aime moins pour une simple question de perte de pagerank (et oui, ca sert toujours), est d'interdire l'indexation du domaine sans www en faisant une règle de réécriture qui présente un robots.txt différent. Mais là aussi on passe par une réécriture, il vaut donc mieux rediriger le domaine, à mon avis ;)

Mais pour ceux que ça tente, voici la recette:

RewriteCond %{HTTP_HOST} ^domaine.com$
RewriteRule robots.txt robots.noindex.txt [L]

Il faut bien sûr que le fichier robots.noindex.txt comprenne les instructions de non-indexation ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Woow là tu m'as perdu Dan. :o

Par contre, j'ai une autre question stupide : dans le même .htaccess il est possible de mélanger les 2 types de façon d'écrire le code ?

RedirectPermanent etc... et RewriteCond etc...

C'est à dire si on utilise RewriteCond pour faire la bidouille sur le www, est-ce que pour la suite des événements on peut écrire RedirectPermanent pour les autres URLs ?

Lien vers le commentaire
Partager sur d’autres sites

On peut bien sûr utiliser les deux directives simultanément, mais souvent une règle bien écrite permet de tout rediriger si on reste dans la même arborescence.

Je t'ai déjà donné l'exemple de http://webmaster-hub.fr mais cette page fonctionne tout aussi bien (en .be pour changer)

http://webmaster-hub.be/index.php?showtopi...20entry114236

C'est une seule règle, et c'est bien une redirection 301. Aucun risque donc de pénalité pour contenu dupliqué. ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ces précisions.

J'ai relancé l'hébergeur en reformulant ton post plus haut et voici la réponse

La redirection 301 ne se fait pas avec de l'URL rewriting, mais avec une autre directive : RedirectPermanent

C'est véritablement une redirection, de même pour la réponse 302 qui utilise une autre directive, ou bien le code que je vous ai indiqué plus haut.

Dan, j'imagine déjà ta tête là :lol:

Nouvelle réponse

Non, RewriteCond est en interne du serveur, et convertit une URL publique en un nom de fichier interne, alors que RedirectPermanent renvoie l'erreur 301 en indiquant la nouvelle URL.
Lien vers le commentaire
Partager sur d’autres sites

Je pense qu'il faut arrêter de lui poser des questions pour lesquelles il ne connaît pas la réponse.

RewriteCond ne convertit rien, c'est une condition... pas une réécriture.

Il ne se compare donc pas du tout avec RedirectPermanent :(

Tu peux le renvoyer sur le site apache.org, je pense qu'il y aura pas mal de choses à apprendre.

La page qui traite de mod_rewrite ( http://httpd.apache.org/docs/1.3/mod/mod_r...tml#RewriteRule ) dit notamment pour le flag [R] à mettre dans une RewriteRule:

'redirect|R [=code]' (force redirect)

Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redirection. If no code is given a HTTP response of 302 (MOVED TEMPORARILY) is used. If you want to use other response codes in the range 300-400 just specify them as a number or use one of the following symbolic names: temp (default), permanent, seeother. Use it for rules which should canonicalize the URL and give it back to the client, e.g., translate ``/~'' into ``/u/'' or always append a slash to /u/user, etc.

Je ne vais pas lui copier le manuel d'Apache tout de même ? On voit bien le mot "redirect" dans ce texte ?

Et quant à l'utilisation du module mod_rewrite, je ne pense pas passer pour farfelu si j'annonce que j'ai une tendance profonde à suivre les recommandations d'Apache, plutôt que les sonneries (avec un s comme dans crocodile) du technicien Haisoft. :lol:

Dan

PS: et pour info, dis-lui que RedirectPermanent ne renvoie pas une erreur 301, mais une entête 301!

Lien vers le commentaire
Partager sur d’autres sites

Yes, j'arrête de lui poser des questions car je crois qu'on est au bout du dialogue. :P

Bon, je suppose qu'il me reste à coller l'include sur toutes les pages du site car RewriteCond ne veut pas marcher.

Pour reprendre du début, à la place du RewriteCond dans le .htaccess, je colle l'include suivante en début de chaque page (avant le doctype) et c'est bon ?

Le but est toujours de rediriger le -http://site.com vers -http://www.site.com

<?
if ($_SERVER["HTTP_HOST"] == "www.nomdusite.com") {header("Location: http://www.nomdusite.com);}
?>

Lien vers le commentaire
Partager sur d’autres sites

Non, surtout pas! L'exemple qu'il t'a donné n'est même pas bon :lol:

Sa règle dit "si le host est www.nomdusite.com" alors on redirige vers www.nomdusite.com...

Puis on repart avec une nouvelle interprétation de cette règle, donc on va boucler à l'infini. !

Il faut plutôt mettre:

<?
if ($_SERVER["HTTP_HOST"] != "www.nomdusite.com") {header("Location: http://www.nomdusite.com");}
?>

Note la subtile différence: != au lieu de == :lol:

Mais cette règle ne permet que la redirection de n'importe quelle page du site sans www vers la racine de www.domaine.com :(

Elle devrait être modifiée correctement! Tu lui demandes ou tu préfères que je te donne la solution ? :lol: PTDR !

Lien vers le commentaire
Partager sur d’autres sites

Allez, ces divagations du support m'ont mises de bonne humeur. Voici une règle qui marchera pour toutes les pages ;)

<?
if ($_SERVER["HTTP_HOST"] != "www.nomdusite.com") {
    header ('HTTP/1.1 301 Moved Permanently');
    header("Location: http://www.nomdusite.com".$_SERVER['PHP_SELF']);
}
?>

Lien vers le commentaire
Partager sur d’autres sites

Bon là, je crois que c'est le pompom mdr mdr mdr

Heureusement que je suis venu valider l'include par notre Dan bien aimé ;)

Merci

Je vais de ce pas me prendre un autre hébergeur à tester :P

Lien vers le commentaire
Partager sur d’autres sites

Je dois reconnaître que si j'avais au départ un a-priori favorable pour cet hébergeur, les réponses que t'on données le support me laissent perplexe.

Je ne prendrai jamais le risque de le recommander à quiconque. :(

Lien vers le commentaire
Partager sur d’autres sites

Pour rediriger les pages sans le www vers les mêmes pages avec le www, il suffit de mettre un fichier .htaccess à la racine du site et d'utiliser la règle donnée par MS-DOS 1991, ou la règle inverse:

RewriteEngine on
RewriteCond %{HTTP_HOST} !www.monsite.com
RewriteRule ^(.*)   http://www.monsite.com/$1  [R=301,QSA,L]

Cette règle demande la redirection si le domaine n'est pas www.monsite.com, elle est plus générale. ;)

Dan

<{POST_SNAPBACK}>

Merci, ça m'a bien servi Dan ;)

Lien vers le commentaire
Partager sur d’autres sites

if ($_SERVER["HTTP_HOST"] != "www.nomdusite.com") {

    header ('HTTP/1.1 301 Moved Permanently');

    header("Location: http://www.nomdusite.com".$_SERVER['PHP_SELF']);

}

?>

Salut Dan

Je ne suis pas fortiche en PHP, mais çà ne risque pas de saborder les sous-domaines ta condition ?

$_SERVER["HTTP_HOST"] renvoie sousdomaine.ndd.com, non ? :unsure:

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, pris isolément cela pourrait saborder les sous-domaines. Mais la question n'est pas là parce que normalement un sous-domaine n'a pas le même espace web, donc ce code ne sera pas exécuté.

Capice ? ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Merci, ça m'a bien servi Dan ;)

<{POST_SNAPBACK}>

Moi aussi jusqu'à ce que je tombe sur un hébergeur qui n'en veuille pas :lol:

Mais Super Dan est venu à la rescousse :)

La seule question que je me pose, mon cher Dan, est comment as-tu pû traîner tes savates dans les serveurs depuis 1975 ? Si c'était moi j'aurais transformé depuis longtemps mes serveurs en champ de tir ou j'aurais invité quelques membres d'Al Qaïda à tester leurs engins de mort pour faire pêter tout ça. :fou:

C'est à devenir dingue ces histoires de serveurs (comme si j'avais besoin de ça pour sombrer dans le folie douce) !!!

Lien vers le commentaire
Partager sur d’autres sites

Ce n'est pas depuis 1975, mais 1978 :lol: Cela m'a valu 3 ans de grâce supplémentaires.

Mais c'est vrai que cela fait un bail. A l'époque, on ne parlait pas encore de TCP/IP... ni d'Internet. Mais j'ai été l'un des premiers à avoir une connexion sur Arpanet. Le premier modem que j'ai acheté à prix d'or était un 120 bauds.. et le fait de passer à 300 bauds l'année suivante était une véritable révolution.

Comme quoi, quand mon ADSL à 2Mbits traîne un peu, j'ai appris à relativiser.

Dommage que je n'ai pas gardé mon premier système Unix, parce qu'à 4MHz et avec 128K (pas 128M) de RAM, c'était la bête de l'époque. Il coûtait le prix d'une voiture sportive Italienne ...

Dan

Lien vers le commentaire
Partager sur d’autres sites

Je n'étais pas loin, mais à partit du siècle dernier on a des difficultés à dater précisement :o

C'est en tout cas impressionant de savoir que tu as traîné tes guêtres dans les serveurs depuis des millénaires.

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, pris isolément cela pourrait saborder les sous-domaines. Mais la question n'est pas là parce que normalement un sous-domaine n'a pas le même espace web, donc ce code ne sera pas exécuté.

Capice ? ;)

Capice !

Merci pour les explications :)

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