перенаправление ip apache2 конфликтует с перенаправлением поддомена

перенаправление ip apache2 конфликтует с перенаправлением поддомена

поэтому посещение моего сайта example.comработает как задумано. Я успешно настроил перенаправление, которое abc.example.comбудет перенаправлять на example.com/abc.

Файл конфигурации выглядит так abc.example.com.conf:

<VirtualHost *:80>
    ServerName abc.example.com
    RedirectPermanent / https://example.com/abc
</VirtualHost>

Моя проблема:

При посещении моего веб-сайта путем ввода необработанного IP-адреса в браузере я также буду перенаправлен на, example.com/abcчто не является желаемым поведением. Необработанный IP-адрес в браузере должен выбросить меня изexample.com

Вот example.com.confфайл:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Что мне нужно изменить, чтобы при вводе моего IP-адреса example.comотображался адрес вместо abc.example.com?

решение1

Это происходит потому, что один из ваших vhosts действует как vhost по умолчанию. Когда ServerNameна уровне сервера (т.е. не в VirtualHostблоке) совпадает с одним внутри VirtualHost, это будет значение по умолчанию. Если ничего не установлено, то это обычно первый vhost.

Предполагая, что вы используете конфигурацию all-vhost, ответ заключается в том, чтобы установить ServerName example.com(и соответствующий Listen) за пределами блока vhost.

Ссылка:https://httpd.apache.org/docs/2.4/vhosts/name-based.html

Главный хозяин уходит

Любой запрос, не соответствующий существующему, обрабатывается глобальной конфигурацией сервера, независимо от имени хоста или ServerName.

Когда вы добавляете виртуальный хост на основе имени к существующему серверу, и аргументы виртуального хоста соответствуют уже существующим комбинациям IP и порта, запросы теперь будут обрабатываться явным виртуальным хостом. В этом случае обычно разумно создать виртуальный хост по умолчанию с ServerName, соответствующим ServerName базового сервера. Новые домены на том же интерфейсе и порту, но требующие отдельных конфигураций, затем можно добавить как последующие (нестандартные) виртуальные хосты.

Связанный контент