Cette question a été posée sur les forums AWS et la réponse a été de configurer un vhost par défaut qui gère le trafic sur l'adresse IP nue et n'effectue aucune redirection. Cela signifie que les utilisateurs normaux qui ont atteint votre adresse IP ne seront pas redirigés non plus.
Vous pouvez également spécifier la partie chemin de l'URL que vous souhaitez que l'ELB demande et ignorer ce chemin en ajoutant un autre RewriteCond:
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/health-check$
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Les utilisateurs normaux qui ont atteint cette URL ne seront pas redirigés.
Vous pouvez également utiliser la même technique pour détecter l'agent utilisateur de l'ELB.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Les utilisateurs normaux qui usurpent leur agent utilisateur ne seront pas redirigés.
Ou l'adresse IP interne de l'ELB.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{REMOTE_ADDR} !^10\.
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Pour que cette option fonctionne, vous aurez besoin mod_rpaf
(pour Apache 2.2) ou mod_remoteip
(pour Apache 2.4) de modifier la REMOTE_ADDR
variable pour qu'elle contienne la partie correcte du contenu de l'en- X-Forwarded-For
tête. Tant que vous le configurez correctement, il ne devrait pas être possible pour un utilisateur normal d'éviter la réponse de redirection.