web-dev-qa-db-fra.com

301 Rediriger de www à non-www sans utiliser VHOST

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.

3
codecool

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]
5
Michael Danilov