Diese Frage wurde in den AWS-Foren gestellt. Die Antwort bestand darin, einen Standard-vhost einzurichten, der den Datenverkehr auf der bloßen IP-Adresse verarbeitet und keine Weiterleitungen durchführt. Dies bedeutet, dass normale Benutzer, die Ihre IP-Adresse erreicht haben, ebenfalls nicht umgeleitet werden.
Sie können alternativ den Pfadteil der URL angeben, den die ELB anfordern soll, und diesen Pfad ignorieren, indem Sie eine weitere RewriteCond hinzufügen:
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/health-check$
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Normale Benutzer, die diese URL erreichen, werden nicht umgeleitet.
Sie können dieselbe Technik auch verwenden, um den User-Agent der ELB zu erkennen.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Normale Benutzer, die ihren User-Agent fälschen, werden nicht umgeleitet.
Oder die interne IP-Adresse der ELB.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{REMOTE_ADDR} !^10\.
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Damit diese Option funktioniert, müssen Sie entweder mod_rpaf
(für Apache 2.2) oder mod_remoteip
(für Apache 2.4) die REMOTE_ADDR
Variable so ändern , dass sie den richtigen Teil des Inhalts des X-Forwarded-For
Headers enthält. Solange Sie dies richtig eingerichtet haben, sollte es einem normalen Benutzer nicht möglich sein, die Umleitungsantwort zu vermeiden.