Comment rediriger www.example.com vers example.com sans passer par 1 pointage DNS ou 1 redirection ?

Catégories:

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

#

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

#

Merci Yoran, je vais essayer.

Syndiquer le contenu