Submitted by lektum on
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.
Dans le fichier settings.php,
Permalien Soumis par vincent59 le 2 Février, 2011 - 16:52
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é
Oui, normalement il faut
Permalien Soumis par mdupont@drupal.org le 2 Février, 2011 - 17:01
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.
Merci. Mais y a pas moyen de
Permalien Soumis par lektum le 2 Février, 2011 - 17:11
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 ?
Si tu es en interne ou en
Permalien Soumis par vincent59 le 2 Février, 2011 - 17:49
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.
Merci, Vincent.
Permalien Soumis par lektum le 2 Février, 2011 - 17:56
Merci, Vincent.
Perso ce que je fais, c’est
Permalien Soumis par Yoran le 3 Février, 2011 - 08:10
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>
Merci Yoran, je vais essayer.
Permalien Soumis par lektum le 3 Février, 2011 - 08:29
Merci Yoran, je vais essayer.