Bonjour,
Contexte : un site Drupal 6 est installé sur un domaine du type example.com, sans les www, donc sur l’url : http://example.com
Problème : Comment rediriger le (sous-)domaine www.example.com vers example.com sans passer par un pointage DNS de type CNAME ou par une redirection fournie par le prestataire nom de domaine ? autrement dit comment le faire uniquement avec Drupal (ou Apache) ? le tout en D6 ?
Précision : example.com est un site dans une install multi-site de Drupal, donc il est dans /sites/example.com
But : que les visiteurs du site qui tapent www.example.com soient proprement redirigés sur example.com, y compris s’ils tapent une URL drupal du type www.example.com/node/15, qui devrait donc rediriger vers example.com/node/15 ?
Merci de vos réponses.
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Dans le fichier settings.php, la variable $base_url est normalement utilisée pour cela.
Par contre, ça veut aussi dire que l’adresse IP de www.example.com est la même que example.com.
Dans le fichier .htaccess, il y a également un exemple de redirection :
# To redirect all users to access the site WITH the 'www.' prefix,# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example.com$ [NC]
# RewriteRule ^(.)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
# RewriteRule ^(.)$ http://example.com/$1 [L,R=301]
Dans ton cas il vaut peut-être mieux regarder de ce côté
vincent59
2594
Oui, normalement il faut juste décommenter et adapter ces lignes fournies dans le fichier .htaccess qui vient avec drupal, et toutes les URL seront réécrites sans le www. devant.
mdupont@drupal.org
616
Merci. Mais y a pas moyen de le faire sans attribuer aucune IP ni aucun enregistrement DNS à www.example.com ? Je veux dire en ayant uniquement un pointage IP pour example.com, et basta ?
LEKTUM : http://www.lektum.com/
TWITTER : http://twitter.com/atelierlektum
lektum
78
Si tu es en interne ou en local, une ligne dans un fichier hosts ça marche bien.
Sur un réseau local, sans DNS, il va falloir ajouter la ligne dans le fichier de toutes les machines.
Sur le net, sans DNS point de salut. Généralement, la déclaration du nom de domaine se fait sans le www (example.com) ; le www est alors juste un sous-domaine.
vincent59
2594
Merci, Vincent.
LEKTUM : http://www.lektum.com/
TWITTER : http://twitter.com/atelierlektum
lektum
78
Perso ce que je fais, c’est un second vhost. C’est simple à mettre en oeuvre et tu peux inclure toutes tes redirections d’un coup (.com => .fr, www => rien, mobile => m, etc.)
<VirtualHost *:80>ServerName tagazok.fr
ServerAlias m.tagazok.fr
DocumentRoot /var/www/tagazok
<Directory "/var/www/tagazok">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.tagazok.fr
ServerAlias www.tagazok.com
ServerAlias tagazok.com
ServerAlias mobile.tagazok.fr
ServerAlias mobile.tagazok.com
Redirect / http://tagazok.fr/
</VirtualHost>
Yoran - arNuméral
Yoran
1039
Merci Yoran, je vais essayer.
LEKTUM : http://www.lektum.com/
TWITTER : http://twitter.com/atelierlektum
lektum
78