Я использую Apache 2.4 при установке Ubuntu 14.04, и я нахожусь в процессе настройки «виртуальных хостов» Apache, чтобы иметь возможность обслуживать различный контент для разных имен хостов.
Я пытаюсь настроить Apache так, чтобы при попытке получить доступ к серверу с именем хоста (www.) Example1.com
содержимое из / var / www / example1
было служил; однако, если кто-то пытается получить доступ к серверу с его IP-адресом или любым другим именем хоста, кроме (www. и как я могу это исправить?
На 2.4 использование _default_
:
<VirtualHost _default_:*>
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Вы можете использовать псевдоним *
, чтобы перехватить любой другой запрос, но это должен быть последний виртуальный хост.
Так вы можете сделать это в вашем случае :
Переименовать и редактировать /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, и т.д.
, значение по умолчанию останется на последней позиции, и вы когда-либо будете принимать "любые другие" запросы.