Julien_B Posté 4 Juillet 2005 Posté 4 Juillet 2005 Hello à toutes et à tous ! Connaissez-vous la meilleure solution pour rediriger tous les répertoires et pages de http://monsite.com Vers http://www.monsite.com ex : http://monsite.com/doc/document.htm vers : http://www.monsite.com/doc/document.htm Merci de vos réponse ! @++++++++
MS-DOS_1991 Posté 4 Juillet 2005 Posté 4 Juillet 2005 (modifié) Salut Julien_B Si ton site n'a pas énormément de pages et si ton hébergeur le supporte, la meilleure solution est sans doute un .htaccess. RewriteEngine onRewriteCond %{HTTP_HOST} ^monsite.com$RewriteRule ^(.*) http://www.monsite.com/$1 [QSA,L,R=301] Sinon, il faut faire la même chose mais en php @+ Modifié 4 Juillet 2005 par MS-DOS_1991
Julien_B Posté 4 Juillet 2005 Auteur Posté 4 Juillet 2005 ok, mais j'ai entendu parlé de : Apache/Mod_Rewrite ou Lighttpd/mod_redirect Que pouvez-vous me dire à ce sujet ? thx
Mamat Posté 4 Juillet 2005 Posté 4 Juillet 2005 Pour ma part, est-ce du au registar ou à l'hébergeur je ne sais, mais ave ou sans www ca fonctionne pareil... Ais-je bien compris la question ?
Dan Posté 4 Juillet 2005 Posté 4 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
Portekoi Posté 4 Juillet 2005 Posté 4 Juillet 2005 Bonjour, @Mamat : Le fait de ne pas avoir les 'www' influs sur les cookies et donc les connexions à certains sites/forums Bon courage Portekoi
Julien_B Posté 4 Juillet 2005 Auteur Posté 4 Juillet 2005 Excusez-moi si je suis un peu relou, mais vos codes sont pas exactement pareil... ! www.monsite.com ^monsite.com$ (j'ai bien compris l'histoire des www avec ou sans) Sinon, je n'ai pas de fichier .htaccess, donc j'imagine que je dois juste créer un fichier texte... et le contenu ? il doit commencer ou finir avec une balise spéciale ? je dois le mettre dans /www ou bien dans ../www ? thx !
Dan Posté 4 Juillet 2005 Posté 4 Juillet 2005 Julien, Un fichier .htaccess est un simple fichier texte qui doit, dans ce cas-ci, se trouver à la racine du site (répertoire /www) Si tu le crées en local, envoies-le en mode "texte" et non pas en mode "binaire" ! Le fait que les 2 règles données ne soient pas les mêmes est expliqué dans le post. La règle que je donne dit "si le domaine n'est pas www.xyz.com, alors on redirige". La règle de MS-DOS dit "si le domaine est xyz.com, on redirige" Tu peux utiliser l'une des deux au choix Dan
Nullette Posté 4 Juillet 2005 Posté 4 Juillet 2005 et le code tout simple : Redirect permanent /http://monsite.com/doc/document.html http://www.monsite.com/doc/document.html dans un .htaccess à la racine ne suffit pas ?
Julien_B Posté 4 Juillet 2005 Auteur Posté 4 Juillet 2005 (modifié) ok, Voici le contenu de mon .htaccess : RewriteEngine onRewriteCond %{HTTP_HOST} ^bestofchat.com$RewriteRule ^(.*) http://www.bestofchat.com/$1 [QSA,L,R=301] ça marche pour transformer bestofchat.com en www.bestofchat.com mais pas pour les sous-dossier... donc pour mon forum ça marche pas (et comme disais portekoi, on est jamais logué automatiquement si on vient sans les www) Merci Modifié 4 Juillet 2005 par Julien_B
Remi Posté 4 Juillet 2005 Posté 4 Juillet 2005 et le code tout simple : Redirect permanent /http://monsite.com/doc/document.html http://www.monsite.com/doc/document.html dans un .htaccess à la racine ne suffit pas ? <{POST_SNAPBACK}> Non : le premier paramètre d'un redirect doit être une URL dans une forme "base relative" (ex.: "/repertoire/" ou "/"). Un redirect ne teste pas le host.
Remi Posté 4 Juillet 2005 Posté 4 Juillet 2005 Le fait que les 2 règles données ne soient pas les mêmes est expliqué dans le post.La règle que je donne dit "si le domaine n'est pas www.xyz.com, alors on redirige". La règle de MS-DOS dit "si le domaine est xyz.com, on redirige" Tu peux utiliser l'une des deux au choix Dans la première option, il faut juste penser à rajouter un second test quand on a d'autres sous-domaines du style : "... et si le domaine n'est pas sousdomaine.xyz.com" car on ramasse *tous* les sous-domaines.
erwinol Posté 21 Juillet 2005 Posté 21 Juillet 2005 L'exemple de Dan provoque une erreur 500 chez moi. J'utilise pourtant l'URL Rewriting depuis un moment et je n'ai jamais eu de soucis. Je l'ai essayé sur 2 sites et j'ai toujours une erreur 500.
neofutur Posté 22 Juillet 2005 Posté 22 Juillet 2005 Utiliser les vhosts apache ( sous linux de preference : voci un virtualhost qui ne gere pas le www. : <VirtualHost 212.85.152.23:80> ServerName feeder.ww7.be DocumentRoot /home1/virtuals/feeder.ww7.be/html <Directory "/virtuals/feeder.ww7.be/html"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> et voila un virtualhost qui ajoute l'alias ( ServerAlias ) www.feeder.ww7.be <VirtualHost 212.85.152.23:80> ServerName feeder.ww7.be ServerAlias www.feeder.ww7.be DocumentRoot /home1/virtuals/feeder.ww7.be/html <Directory "/virtuals/feeder.ww7.be/html"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Dan Posté 22 Juillet 2005 Posté 22 Juillet 2005 L'exemple de Dan provoque une erreur 500 chez moi. J'utilise pourtant l'URL Rewriting depuis un moment et je n'ai jamais eu de soucis. Je l'ai essayé sur 2 sites et j'ai toujours une erreur 500. Tu as raison, il y avait une coquille : un espace entre ! et www.monsite.com, alors qu'il n'en faut pas! J'ai corrigé le post initial.
Dan Posté 22 Juillet 2005 Posté 22 Juillet 2005 @ neofutur, Que le www soit positionné en ServerAlias ne redirigera pas le visiteur vers celui-ci s'il oublie le www dans l'URL. Un ServerAlias n'est qu'un nom alternatif pour un domaine, rien de plus. Pour rediriger vers le www il faut une règle de redirection, qu'elle soit dans le fichier .htaccess ou directement dans le httpd.conf.
thick Posté 22 Juillet 2005 Posté 22 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}> Quelle est la différence avec cette régle ? RewriteEngine on RewriteCond %{HTTP_HOST} !www.monsite.com$ RewriteRule (.*) http://www.monsite.com/$1 [R=301,L]
Dan Posté 22 Juillet 2005 Posté 22 Juillet 2005 Bien a vu d'oeil un "^" au début de la règle.... Qui ne sert d'ailleurs à rien... donc on peut l'enlever.Une autre différence est l'utilisation du flag QSA, pour forcer la transmission de la query string. Normalement celle-ci est transmise automatiquement lors de redirections externes, mais j'ai vu des cas de config et/ou version Apache où cela ne marchait pas. Depuis je le rajoute systématiquement
erwinol Posté 22 Juillet 2005 Posté 22 Juillet 2005 (modifié) Merci ça marche Je l'ai mis en place sur 4 de mes sites. Modifié 22 Juillet 2005 par erwinol
thick Posté 28 Juillet 2005 Posté 28 Juillet 2005 Je viens de prendre un nouvel hébergeur pour tester et j'ai essayé de rediriger avec le Rewrite suivant : RewriteEngine on RewriteCond %{HTTP_HOST} !www.nomdusite.com$ RewriteRule (.*) http://www.nomdusite.com/$1 [R=301,QSA,L] comme ça plantait, j'ai mailé le support qui me répond ça : Vous ne pouvez pas utiliser l'URL rewriting pour faire une redirection. L'URLRewriting sert à faire une redirection transparente, c'est à dire que si vous utilisez easywouebe.com, l'URL Rewriting peut faire en sorte que les 2 URL suivantes soient identiques :-http://easywouebe.com/index.html -http://www.easywouebe.com/index.html C'est déjà le cas par défaut. Pour faire une redirection de l'une sur l'autre, vous pouvez créer une page en PHP qui analyse le nom du domaine et si celui-ci n'est pas le bon, alors il peut rediriger vers le bon. Par exemple, dans le fichier index.php, vous pouvez mettre le code PHP suivant : if ($_SERVER["HTTP_HOST"] == "www.nomdusite.com") {header("Location: http://www.nomdusite.com);} Ce code redirigera vers le nom avec les www si ceux-ci ne sont pas indiqués dans le nom de domaine.
Dan Posté 28 Juillet 2005 Posté 28 Juillet 2005 Le support t'a répondu n'importe quoi ... Vous ne pouvez pas utiliser l'URL rewriting pour faire une redirection. Si on ne peut pas utiliser l'URL rewriting pour faire des redirections, on en fait quoi ? des frites ? des carambars ? Quel est cet hébergeur ? Pas OVH tout de même ?
thick Posté 28 Juillet 2005 Posté 28 Juillet 2005 (modifié) C'est Haisoft que je teste. Le support est vraiment rapide par rapport à OVH (Dan ) J'ai les réponses en quelques minutes. Voici la dernière réponse L'URL rewriting est fait pour transformer des URL "par derrière" sans que le visiteur voit que cette URL est changée, donc cela permet aux visiteurs de voir les mêmes fichiers avec les www ou sans les www. Or, notre système autorise par défaut de voir les mêmes fichiers avec ou sans les "www" donc il n'est pas nécessaire d'utiliser l'URL rewriting. Merci C'est vraiment rapide car j'ai reçu une autre précision 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. Merci Modifié 28 Juillet 2005 par thick
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant