Когда Вы находитесь в .htaccess
контекст (/.*)
никогда не будет соответствовать полному URL, из документов:
В Каталоге и htaccess контексте, Шаблон будет первоначально подобран против пути файловой системы после удаления префикса, которые приводят сервер к текущему RewriteRule (например, "app1/index.html" или "index.html" в зависимости от того, где директивы определяются).
и
На каталог переписывает
...
Удаленный префикс всегда заканчивается наклонной чертой, означая, что соответствие происходит против строки, которая никогда не имеет ведущую наклонную черту. Поэтому Шаблон с ^/никогда не соответствует в контексте на каталог.
, если вы используете отдельные файлы конфигурации для виртуальных хостов, например, в подкаталоге /etc/apache2/vhosts.d/, тогда вы можете просто создать одну конфигурацию с именем, начинающимся с 0_ а затем любое имя (0_default_host.conf) и используйте любое имя сервера. Эта конфигурация будет использоваться для каждого запроса, который поступает без правильного имени хоста.
В этом файле конфигурации вы можете просто создать перенаправление, которое перенаправляет каждый запрос ни к чему. Что-то вроде этого: RewriteRule. * - [F]
Эта настройка будет блокировать каждое имя хоста и IP-адрес, которые не обрабатываются другими файлами конфигурации.
Для вашей страницы по умолчанию это должно быть так (это позволяет любому IP-адресу перейти на страницу по умолчанию). Символ * - это подстановочный знак для IP-адреса.
NameVirtualHost *:80
Для виртуальных хостов ваш файл конфигурации будет выглядеть так:
<VirtualHost *:80>
DocumentRoot "/www/example1.com/"
ServerName example1.com
ServerAlias www.example1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/www/example2.com/"
ServerName example1.com
ServerAlias www.example1.com
</VirtualHost>