Dan Posté 28 Juillet 2005 Posté 28 Juillet 2005 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 ! 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>
thick Posté 28 Juillet 2005 Posté 28 Juillet 2005 (modifié) 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 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 Modifié 28 Juillet 2005 par thick
Dan Posté 28 Juillet 2005 Posté 28 Juillet 2005 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
thick Posté 28 Juillet 2005 Posté 28 Juillet 2005 Woow là tu m'as perdu Dan. 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 ?
Dan Posté 28 Juillet 2005 Posté 28 Juillet 2005 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
thick Posté 29 Juillet 2005 Posté 29 Juillet 2005 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 : RedirectPermanentC'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à 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.
Dan Posté 29 Juillet 2005 Posté 29 Juillet 2005 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. Dan PS: et pour info, dis-lui que RedirectPermanent ne renvoie pas une erreur 301, mais une entête 301!
thick Posté 29 Juillet 2005 Posté 29 Juillet 2005 Yes, j'arrête de lui poser des questions car je crois qu'on est au bout du dialogue. 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);}?>
Dan Posté 29 Juillet 2005 Posté 29 Juillet 2005 Non, surtout pas! L'exemple qu'il t'a donné n'est même pas bon 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 == 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 ? PTDR !
Dan Posté 29 Juillet 2005 Posté 29 Juillet 2005 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']);}?>
thick Posté 29 Juillet 2005 Posté 29 Juillet 2005 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
Dan Posté 29 Juillet 2005 Posté 29 Juillet 2005 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.
Poppy Posté 29 Juillet 2005 Posté 29 Juillet 2005 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 onRewriteCond %{HTTP_HOST} !www.monsite.comRewriteRule ^(.*) 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
Dudu Posté 29 Juillet 2005 Posté 29 Juillet 2005 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 ?
Dan Posté 29 Juillet 2005 Posté 29 Juillet 2005 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
thick Posté 29 Juillet 2005 Posté 29 Juillet 2005 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 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. C'est à devenir dingue ces histoires de serveurs (comme si j'avais besoin de ça pour sombrer dans le folie douce) !!!
Dan Posté 30 Juillet 2005 Posté 30 Juillet 2005 Ce n'est pas depuis 1975, mais 1978 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
thick Posté 30 Juillet 2005 Posté 30 Juillet 2005 Je n'étais pas loin, mais à partit du siècle dernier on a des difficultés à dater précisement C'est en tout cas impressionant de savoir que tu as traîné tes guêtres dans les serveurs depuis des millénaires.
Dudu Posté 30 Juillet 2005 Posté 30 Juillet 2005 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
Dinostrate Posté 2 Août 2005 Posté 2 Août 2005 Salut Thick En vérité, il se pourrait qu'il n'y ait aucune différence... une autre manière d'écrire la règle...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant