Этот вопрос задавался на форумах AWS, и ответ состоял в том, чтобы настроить vhost по умолчанию, который обрабатывает трафик на голом IP-адресе и не выполняет никаких перенаправлений. Это будет означать, что обычные пользователи, попавшие на ваш IP-адрес, также не будут перенаправлены.
В качестве альтернативы вы можете указать часть пути URL, которую вы хотите, чтобы ELB запрашивал, и игнорировать этот путь, добавив еще один RewriteCond:
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/health-check$
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Обычные пользователи, попавшие на этот URL, не будут перенаправлены.
Вы также можете использовать ту же технику, чтобы обнаружить User-Agent ELB.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^ELB-HealthChecker
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Обычные пользователи, которые подделывают свой User-Agent, не будут перенаправлены.
Или внутренний IP-адрес ELB.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{REMOTE_ADDR} !^10\.
RewriteRule ^ http://www.example.com/$1 [R=301,L]
Чтобы эта опция работала, вам потребуется mod_rpaf
(для Apache 2.2) или mod_remoteip
(для Apache 2.4) изменить REMOTE_ADDR
переменную, чтобы она содержала правильную часть содержимого X-Forwarded-For
заголовка. До тех пор, пока вы настроите его правильно, обычный пользователь не сможет избежать ответа на перенаправление.