Если моя математика верна, то 204.246.160.0/19 равен 204.246.160. * Thru 204.246.191. * Так что регулярное выражение для соответствия это 204\.246\.1([678]\d|19[01]\.\d+
и, следовательно, cond
RewriteCond %{REMOTE_ADDR} !204\.246\.1([678]\d|19[01])\.\d+
Adddendum
В ваших регулярных выражениях есть незначительные ошибки, такие как [0,9], когда вы имеете в виду [09] и "." вместо ".". Но вы можете предположить, что IP-адрес будет действительным, поэтому вы можете упростить его, и это было самое простое из того, что я придумал:
#Filter the 204.246.160.0/19 and 216.137.32.0/19 IP subranges
RewriteCond %{REMOTE_ADDR} !^(204\.246\.1([678]\d|19[01])|216\.137\.(3[2-9]|[45]\d|6[0-3]))\.
#Filter the 205.251.xxx and 207.171.xxx /2[34] IP subranges
RewriteCond %{REMOTE_ADDR} !^(205\.251\.2(0[24567]|1[01489]|20|22|49|50|52)\|207\.172\.17[09])\.
Однако я действительно обеспокоен тем, что в заявлении, на которое вы ссылаетесь, указано « IP-адреса CloudFront часто меняются, и мы не можем гарантировать предварительное уведомление об изменениях ... Клиенты не должны использовать эти адреса для критически важных приложений и никогда не должны использовать жесткий код». их в DNS-именах."
Нет ли лучшего способа перехвата этих IP-адресов CloudFront, например, из заголовка запроса?