2017-03-14 2 views
0

une redirection non www à www et le protocole HTTPS est, retourne 302 temporary redirect uniquement http://www.example.com.Redirect non WWW au format WWW et HTTPS dans VirtualHost

Voir Status Codes ci-dessous par protocole et le nom d'hôte - tester mon site http://www.mypetcerts.com

example.conf

<VirtualHost *:80> 
     ServerName www.example.com 
     # server config 
    </VirtualHost> 

    <VirtualHost *:80> 
     ServerName example.com 
     RedirectMatch permanent ^/?(.*) https://www.mypetcerts.com/$1 
    </VirtualHost> 

J'imagine que c'est parce que je frappe VirtualHost 1 ci-dessus sans https redirigent parce que le nom canonique était correct et il n'y avait pas besoin de frapper le VirtualHost 2 à ServerName exemple. com. Quelqu'un at-il une réponse avec ce style mis en place? Je cours aussi sur Amazon ELB.

Note: Ceci est Apache2.2 Je ne peux pas tirer parti de Apache2.4 IF directives :(

Je suppose que faire une redirection vers www alors https est possible, mais si je comprends bien l'exécution d'une plusieurs redirect (par exemple à www d'abord, puis à https) n'est pas le grand pour le référencement.

J'ai besoin tous les résultats possibles à goto https://www.example.com avec un seul 301 permanent redirect.

Répondre

0

Résolu! en utilisant une combinaison de Redirect et Réécrire Je suis en mesure d'obtenir la seule redirection 301 permanente de HTTP, non www à HTTPS www. J'utilise le RewriteCond décrit ci-dessous pour traiter mon écouteur backend uniquement sur HTTP (par exemple: 80).

Voir ici: AWS Support

<VirtualHost *:80> 
    ServerName www.example.com 

    RewriteEngine On 
    RewriteCond %{HTTP:X-Forwarded-Proto} !=https 
    RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L] 
    # additional optional server config 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName example.com 
    RedirectMatch permanent ^/?(.*) https://www.example.com/$1 
</VirtualHost>