web-dev-qa-db-fra.com

Rediriger https://example.com nu vers https://www.exemple.com

Je redirige toutes les demandes http:// vers https:// à l'aide du fichier d'hôte virtuel Apache2:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect / https://www.example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    #more details here
</VirtualHost>

Cela fonctionne correctement et redirige toutes les demandes vers https://, mais je souhaite maintenant rediriger ma demande non-www vers www. J'ai essayé d'ajouter ces lignes avant et après le <VirtualHost *:443> ci-dessus sans succès.

<VirtualHost *:443>
    ServerName example.com
    Redirect / https://www.example.com/
</VirtualHost>

Comment puis-je le faire rediriger de non-www vers www tout en appliquant SSL dans le fichier hôte virtuel?

3
Riyas Kp

Essayez quelque chose comme ça:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot "/path/to/port/80/site"
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot "/path/to/port/443/site"
</VirtualHost>

Créez un fichier .htaccess dans/path/to/port/8/site avec:

RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com$ [NC,OR]
RewriteCond %{HTTP_Host} ^www.example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Créez un fichier .htaccess dans/path/to/port/44/site avec:

RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
1
closetnoc