Это решение не охватывает все случаи.
Замените любое число или точку в URL-адресе IP его% ##, например, 1 на% 31 ... 8 на% 38, и вы получите IP, а не URL-адрес домена.
Предположим, это плохой IP, используемый для облегчения объяснения: 123.45.6.789
Вы должны использовать 2 варианта для всех цифр и точек: точка - это% 2E, а 0..9 - это% 30 ..% 39
RewriteEngine on
RewriteCond %{HTTP_HOST} (1|%31)(2|%32)(3|%33)(\.|%2E)(4|%34)(5%35)(\.|%2E)(6|%36)(\.|%2E)(7|%37)(8|%38)(9|%39)
RewriteRule . - [F]
Уродливо, его можно уменьшить с помощью {1,3} и ограничить допустимым IP-адресом, но, как и для вашего IP-адреса, делать это не нужно.
Не забудьте порты типа ": 80". HTTP_HOST содержит его, а SERVER_NAME не является надежным.