Comment puis-je exécuter 2 hôtes virtuels sur Apache 2.4 où l'on utilise le port 80 "no ssl" et l'autre utilise le port 443 "ssl"?

J'utilise Apache 2.4.18 sur Windows Server 2008 R2 et PHP 5.6.18.

Mon server Apache par défaut a la SSL . Je dois exécuter 2 sites différents où un site utilise SSL et l'autre ne le fait pas.

Voici ce que j'ai ajouté à mon file httpd-vhosts.conf pour tenter de le faire fonctionner

 <VirtualHost *:80> ServerName SERVER1.example.com Redirect permanent "C:/phpsites/app1" https://sub1.example.com/ </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/phpsites/app2/public" ServerName SERVER1.example.com ServerAlias sub2.example.com SSLEngine Off <Directory "C:/phpsites/app2/public"> AllowOverride All Require all Granted </Directory> </VirtualHost> <VirtualHost *:443> DocumentRoot "C:/phpsites/app1" ServerName SERVER1.example.com ServerAlias sub1.example.com SSLEngine On SSLCertificateFile "c:/Apache24/conf/certificatee/cert.crt" SSLCertificateKeyFile "c:/Apache24/conf/certificatee/private.key" <Directory "C:/phpsites/app1"> AllowOverride All Require all Granted </Directory> </VirtualHost> 

Le paramètre ci-dessus ne fonctionne pas correctement. Quand je vais à **https**://sub1.example.com Apache me redirige vers le bon site C:/phpsites/app1 . Quand je vais à **http**://sub1.example.com il me redirige vers C:/phpsites/app2/public mais je ne veux pas que cela se produise. Et quand je vais à http://sub2.example.com je suis redirigé vers **https**://sub1.example.com pour une raison quelconque.

Je dois diriger tout user qui search http://sub1.example.com ou https://sub1.example.com vers **https**://sub1.example.com .

Et tous les users qui searchnt http://sub2.example.com ou https://sub2.example.com pour accéder à **http**://sub2.example.com

Comment puis-je faire fonctionner ce travail?

ACTUALISÉ

Voici ce que je reçois lorsque httpd -D DUMP_VHOSTS

Configuration de VirtualHost:

 *:80 is a NameVirtualHost default server SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:27) port 80 namevhost SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:27) port 80 namevhost SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:34) alias sub2.example.com *:443 is a NameVirtualHost default server SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:52) port 443 namevhost SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:52) alias sub1.example.com port 443 namevhost SERVER1.example.com (C:/Apache24/conf/extra/httpd-ssl.conf:85) 

Quand je vais à http : //sub1.example.com, il me redirige vers C: / phpsites / app2 / public mais je ne veux pas que cela se produise.

C'est parce que vous avez un seul hôte virtuel (par défaut)

 <VirtualHost *:80> DocumentRoot "C:/phpsites/app2/public" ServerAdmin test@example.com ServerName sub2.example.com ServerAlias sub2.example.com SSLEngine Off <Directory "C:/phpsites/app2/public"> AllowOverride All Require all Granted </Directory> </VirtualHost> 

Vous devez append l'hôte virtuel pour sub1.example.com

 <VirtualHost *:80> ServerName sub1.example.com Redirect 301 / https://sub1.example.com/ </VirtualHost> 

La ligne suivante est vraiment étrange

 port 80 namevhost sub1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:43) alias sub2.example.com 

Pourquoi utilisez-vous sub2 comme alias dans sub1 vhost?