Version complète: sur le forum Webmaster Hub : Domaine redirigé vers le www
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Nicolas
Bonjour,

J'ai un domaine sur lequel je voudrais faire une redirection 301 vers le sous domaine www.

Dans apache j'ai la config suivante :

<VirtualHost xxx.xxx.xx.xx>
ServerAdmin webmaster_AT_mondomaine.com
DocumentRoot /home/login/www
User login
Group users
ServerName www.mondomaine.com
ServerAlias mondomaine.com
CustomLog logs/login-access_log "combined"
ScriptAlias /cgi-bin/ /home/login/cgi-bin/
LogLevel emerg
</VirtualHost>

Quand je tape dans mon navigateur : http://mondomaine.com il m'affiche bien le site http://www.mondomaine.com (c'est un alias) mais l'adresse dans la barre de navigateur reste la meme. L'entete http renvoyée est un code 200.

Je voudrais une 301 car l'url http://mondomaine.com est référencé dans google ainsi que www.mondomaine.com donc ça me fait 2 indexes...

Merci d'avance
Vincent
voici les lignes de mon htaccess pour rediriger http://mondomaine.com vers http://www.mondomaine.com

CODE
RewriteEngine on
RewriteOptions inherit

RewriteCond  %{HTTP_HOST}  !www.mondomaine.net
RewriteRule (.*) http://www.mondomaine.net/$1 [R=301,L]
Nicolas
Merci Vincent, ca marche à merveille!
Remi
C'est la première fois que je vois cette directive :
RewriteOptions inherit
(Je pensais que par défaut il y avait toujours héritage des répertoires parent...)

En regardant la doc Apache, j'ai vu que 'inherit' était la seule option possible pour cette directive. Moi, je serais éventuellement preneur du contraire : bloquer l'héritage des parents. Cela existerait-il ?
Dan
Salut Remi,

En l'absence du RewriteOptions inherit, les règles du répertoire de niveau supérieur sont remplacées par celles du fichier .htaccess du répertoire courant.
Il n'y a donc pas d'héritage par défaut pour la réécriture, sauf si le fichier .htaccess est manquant.

Tu peux aussi mettre un RewriteEngine Off si tu veux éviter toute réécriture.

Dan

PS: dans l'exemple, le RewriteOptions inherit ne sert à rien parce que la règle de réécriture suppose qu'on soit à la racine du site... il n'y a donc pas de niveau supérieur wink.gif
Vincent
oui c'est vrai, la ligne est inutile... j'ai du copier un peu trop grossierement d'un exemple.

j'ai essayé de recherché ou je l'avais trouvé mais je n'ai pas trouvé wink.gif
cela m'a donné l'occasion de tomber sur 2 messages du meme sujet :
www obligatoire
URL rewriting dans quel .htaccess?, Racine ou répertoire?
Remi
Merci bien pour ces précisions... (J'étais persuadé qu'il y avait toujours héritage.)

CITATION(Dan @ mercredi 07 septembre 2005, 21h00)
Il n'y a donc pas d'héritage par défaut pour la réécriture, sauf si le fichier .htaccess est manquant.

Enfin, il peut toutefois y avoir un .htaccess sans UR.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.