Доступ Apache только к имени хоста не IP

Когда Вы находитесь в .htaccess контекст (/.*) никогда не будет соответствовать полному URL, из документов:

В Каталоге и htaccess контексте, Шаблон будет первоначально подобран против пути файловой системы после удаления префикса, которые приводят сервер к текущему RewriteRule (например, "app1/index.html" или "index.html" в зависимости от того, где директивы определяются).

и

На каталог переписывает

...

Удаленный префикс всегда заканчивается наклонной чертой, означая, что соответствие происходит против строки, которая никогда не имеет ведущую наклонную черту. Поэтому Шаблон с ^/никогда не соответствует в контексте на каталог.

0
задан 14 August 2013 в 22:42
2 ответа

, если вы используете отдельные файлы конфигурации для виртуальных хостов, например, в подкаталоге /etc/apache2/vhosts.d/, тогда вы можете просто создать одну конфигурацию с именем, начинающимся с 0_ а затем любое имя (0_default_host.conf) и используйте любое имя сервера. Эта конфигурация будет использоваться для каждого запроса, который поступает без правильного имени хоста.

В этом файле конфигурации вы можете просто создать перенаправление, которое перенаправляет каждый запрос ни к чему. Что-то вроде этого: RewriteRule. * - [F]

Эта настройка будет блокировать каждое имя хоста и IP-адрес, которые не обрабатываются другими файлами конфигурации.

0
ответ дан 5 December 2019 в 15:08

Для вашей страницы по умолчанию это должно быть так (это позволяет любому 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>
0
ответ дан 5 December 2019 в 15:08

Теги

Похожие вопросы