Désactiver les hôtes virtuels Apache pour IP, Mais pas pour (sous) Domaines

J'ai mis en place un domaine et deux sous-domaines avec la redirection de la version correspondante https:

<virtualhost *:80="">
ServerName domain.com
Redirect permanent / [url=https://domain.com]https://domain.com[/url]
</virtualhost>
<virtualhost *:80="">
ServerName a.domain.com
Redirect permanent / [url=https://a.domain.com]https://a.domain.com[/url]
</virtualhost>
<virtualhost *:80="">
ServerName b.domain.com
Redirect permanent / [url=https://b.domain.com]https://b.domain.com[/url]
</virtualhost>

Maintenant, je passe un peu de test:

curl [url=http://domain.com/]http://domain.com/[/url] gives me the redirect to [url=https://domain.com/]https://domain.com/[/url]
curl [url=http://a.domain.com/]http://a.domain.com/[/url] gives me the redirect to [url=https://a.domain.com/]https://a.domain.com/[/url]
curl [url=http://b.domain.com/]http://b.domain.com/[/url] gives me the redirect to [url=https://b.domain.com/]https://b.domain.com/[/url]

Bien. Dernier test, juste en utilisant IP (a.b.c.d):

curl [url=http://a.b.c.d/]http://a.b.c.d/[/url] gives me the redirect to [url=https://a.domain.com/]https://a.domain.com/[/url]

Prend la redirection du domaine

a.domain.com

.

Y a-t-il des changements à arrêter HTTP / HTTPS, Si l'utilisateur demande

[url=http://a.b.c.d/]http://a.b.c.d/[/url]

? Pour le moment, j'ai ajouté rediriger vers le domaine principal, où la version HTTPS a un certificat auto-signé (parce que c'est juste IP):

<virtualhost *:80="">
Redirect permanent / [url=https://domain.com]https://domain.com[/url]
</virtualhost>
<virtualhost *:443="">
SSLEngine ON
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

Redirect permanent / [url=https://domain.com]https://domain.com[/url]
</virtualhost>
Invité:

Blanche

Confirmation de:

Vous pouvez créer un hôte virtuel par défaut sans

ServerName

Et sans rediriger aucun spécifique vhost. Pour autant que je sache, c'est ce dont vous avez besoin. Apache Par défaut utilise le tout premier

VirtualHost

directive si elle est trouvée dans les fichiers de configuration, suffisamment pour mettre

ServerName

Apparemment B.

httpd.conf

(Ou comment est-il appelé là-bas dans votre système) directement.

Hannah

Confirmation de:

En nommé VirtualHost:

<virtualhost *:80="">
ServerName example.com
Redirect permanent / [url=https://example.com]https://example.com[/url]
</virtualhost>
<virtualhost *:443="">
ServerName example.com
SSLEngine On
###other directives below
</virtualhost>

Ce sera toujours / Rediriger de force les utilisateurs de
http://example.com
à
https://example.com
.

Si vous voulez que les utilisateurs aient la possibilité d'utiliser HTTP ou HTTPS, Utilisez les deux configurations. Ne pas rediriger.

<virtualhost *:80="">
ServerName example.com
###other directives below
</virtualhost>
<virtualhost *:443="">
ServerName example.com
SSLEngine On
###other directives below
</virtualhost>

Pour la configuration basée sur IP Le paramètre décrit ci-dessus fonctionnera si vous venez d'exécuter un site via le port 80 et un à travers le port 443.

<virtualhost 192.168.1.100:80="">
###other directives below
</virtualhost>
<virtualhost 192.168.1.100:443="">
SSLEngine On
###other directives below
</virtualhost>

Pour répondre aux questions, connectez-vous ou registre