Apache redirectmatch неправильно применяется к другим vhosts

Я использую Apache 2.4.6 на Centos 7.4, и у меня есть следующий файл vhosts:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /home/example/public_html
    RedirectMatch 301 ^/(.*)$ https://example.com/$1
</VirtualHost>

Мне нужно правило, которое я могу применить ко всем my vhosts, который перенаправляет их на https (за исключением одного, упомянутого ниже, который должен быть на незашифрованном соединении).

Проблема в том, что у меня есть другой виртуальный хост, который перенаправляется на example.com, для которого нет такого правила и который не должен быть перенаправлен. Помогите мне понять, что здесь происходит, пожалуйста? Означает ли это, что я должен быть осторожен с другими правилами, такими как набор заголовков? Например, я не хочу устанавливать заголовок предварительной загрузки HSTS, который предназначен для одного виртуального хоста на другом виртуальном хосте, который не должен иметь этот заголовок.

Редактировать: Мой сервер (плохо) управляется, поэтому я предположил, что уже был настроен vhost для другого моего домена (тот, который перенаправлял, хотя этого не должно было быть, назовем его example2.com), но он оказывается, не было ни одного. Чтобы решить эту проблему, мне нужно было добавить файл .conf для example2.com. Он до сих пор не объясняет мне, почему это произошло, поскольку перенаправление должно было быть изолировано на example.com, но, по крайней мере, этого больше не было.

0
задан 26 February 2021 в 21:20
1 ответ

Из раздела Поддержка виртуального хоста на основе имени в руководстве Apache httpd :

На основе имени по умолчанию vhost для комбинации IP-адреса и порта

Если совпадение ServerName или ServerAlias ​​не найдено в наборе виртуальных хостов, содержащих наиболее конкретную совпадающую комбинацию IP-адреса и порта, то первый указанный виртуальный хост , который соответствует этому будет использовано.

То есть, как правило, неплохо иметь нейтральную первую запись, предназначенную для сценария, когда в какой-то момент вы получаете неожиданные запросы.

1
ответ дан 24 April 2021 в 01:41

Теги

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