J'ai mon application Web fonctionnant sur EC2 avec Apache. Je veux rediriger www vers non-www. En cherchant sur Google, je l'ai utilisé mais cela conduit à rediriger la boucle:
<VirtualHost *:80>
ServerName www.domain.com
Redirect 301 / http://domain.com/
</VirtualHost>
Je n'utilise pas d'hôtes virtuels car le serveur ne gère qu'un seul domaine. Qu'est-ce qui ne va pas dans l'exemple ci-dessus et comment puis-je rediriger 301?
P.S. J'essaie d'éviter d'utiliser .htaccess.
Vous devez vous interroger sur une certaine confusion, je vais donc parler des moyens de faire une redirection de www à no-www:
1.Créez deux VirtualHost pour deux domaines et utilisez la redirection 301:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/path/to/site"
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
Redirect 301 / http://example.com/
</VirtualHost>
2.Créez deux VirtualHost pour deux domaines et utilisez .htaccess avec la règle de redirection:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/path/to/site1"
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot "/path/to/site2"
</VirtualHost>
et créez /path/to/site2/.htaccess avec
Redirect 301 / http://example.com/
3.Créez 1 VirtualHost et définissez la redirection commune .htaccess:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/path/to/site"
</VirtualHost>
créez /path/to/site/.htaccess avec
RewriteEngine On
RewriteCond %{HTTP_Host} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]