Faire apache automatiquement déshabiller le www.
Question
Pour diverses raisons, telles que les cookies, le référencement, et pour que les choses restent simples, je souhaite que Apache redirige automatiquement les demandes http://www.foobar.com/anything sur http://foobar.com/ quelque chose . Le mieux que je puisse trouver est une monstruosité basée sur mod_rewrite. Existe-t-il un moyen simple et facile de le dire "Rediriger toutes les demandes du domaine ABC vers XYZ"?
PS: j'ai trouvé la question un peu connexe , mais c'est pour IIS et fait le contraire de ce que je veux. Aussi, c'est toujours complexe.
La solution
C’est aussi simple que:
<VirtualHost 10.0.0.1:80>
ServerName www.example.com
Redirect permanent / http://example.com/
</VirtualHost>
Adaptez les noms d’hôte et les adresses IP au besoin:)
Autres conseils
plus simple et plus facile à copier d'un site à l'autre:
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Assez simple si vous utilisez mod_rewrite, comme nous le faisons tous;)
Cela fait partie du .htaccess de mon site Web en direct:
RewriteEngine on
# Catches www.infinite-labs.net and redirects to the
# same page on infinite-labs.net to normalize things.
RewriteCond %{HTTP_HOST} ^www\.infinite-labs\.net$
RewriteRule ^(.*)$ http://infinite-labs.net/$1 [R=301,L]
Utilisez un fichier .htaccess avec des règles mod_rewrite:
RewriteEngine On
RewriteRule ^www.SERVERNAME(.*) http://SERVERNAME$1 [L,QSA]
Je ne suis pas sûr d'avoir bien saisi la syntaxe avec le $ 1
, mais c'est bien documenté. L envoie un emplacement: en-tête au navigateur, et QSA signifie Query String Append.
Puisque vous avez mentionné l'utilisation de mod_rewrite, je suggérerais une règle simple dans votre .htaccess - cela ne me semble pas monstrueux:)
RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
RewriteRule ^(.*)$ http://foobar.com/$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Cela devrait faire l'affaire.