Вступает в силу только одна конфигурация виртуального хоста Apache

Я использую Apache 2.4 при установке Ubuntu 14.04, и я нахожусь в процессе настройки «виртуальных хостов» Apache, чтобы иметь возможность обслуживать различный контент для разных имен хостов.

Я пытаюсь настроить Apache так, чтобы при попытке получить доступ к серверу с именем хоста (www.) Example1.com содержимое из / var / www / example1 было служил; однако, если кто-то пытается получить доступ к серверу с его IP-адресом или любым другим именем хоста, кроме (www. и как я могу это исправить?

0
задан 22 December 2015 в 06:55
2 ответа

На 2.4 использование _default_:

<VirtualHost _default_:*>
     DocumentRoot /var/www/html
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
3
ответ дан 4 December 2019 в 11:46

Вы можете использовать псевдоним *, чтобы перехватить любой другой запрос, но это должен быть последний виртуальный хост.

Так вы можете сделать это в вашем случае :

Переименовать и редактировать /etc/apache2/sites-available/000-example1.conf:

<VirtualHost *:80>
    DocumentRoot /var/www/example1
    ServerName www.example1.com
    ErrorLog ${APACHE_LOG_DIR}/ex1_error.log
    CustomLog ${APACHE_LOG_DIR}/ex1_access.log combined
</VirtualHost>

Переименовать и редактировать /etc/apache2/sites-available/001-default. conf:

# /!\ THIS HAS TO BE ON THE LAST POSITION /!\
<VirtualHost *:80 *:443>
ServerName localhost
ServerAlias *
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Вы даже можете переименовать 001-default.conf в 100-default.conf, как в следующий раз, когда у вас будет новый виртуальный хост типа 002-newhost1.conf, 003-newhost2.conf, и т.д., значение по умолчанию останется на последней позиции, и вы когда-либо будете принимать "любые другие" запросы.

.
1
ответ дан 4 December 2019 в 11:46

Теги

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