Aller au contenu

Sujets conseillés

Posté (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 on
RewriteCond %{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é par MS-DOS_1991
Posté

ok, mais j'ai entendu parlé de :

Apache/Mod_Rewrite

ou

Lighttpd/mod_redirect

Que pouvez-vous me dire à ce sujet ?

thx

Posté

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 ?

Posté

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é

Bonjour,

@Mamat : Le fait de ne pas avoir les 'www' influs sur les cookies et donc les connexions à certains sites/forums :)

Bon courage

Portekoi

Posté

Ha oui je n'y avais pas pensé ! Autant pour moi.

Posté

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 !

Posté

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

Posté

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é (modifié)

ok,

Voici le contenu de mon .htaccess :

RewriteEngine on
RewriteCond %{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é par Julien_B
Posté
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.

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

  • 3 semaines plus tard...
Posté

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.

Posté

Utiliser les vhosts apache ( sous linux de preference :fete:;):

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>

Posté
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. :)

Posté

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

Posté
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}>

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]

Posté

Bien a vu d'oeil un "^" au début de la règle....

Posté
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 ;)

Posté

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.

Posté

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 ? :lol:

Quel est cet hébergeur ? Pas OVH tout de même ?

Posté (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é par thick

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...