Как настроить 2 виртуальных хоста на Apache, где один хост работает с использованием SSL, а другой нет?

Я запускаю Apache 2.4.18 на Windows Server 2008 R2 и PHP 5.6.18 на физическом компьютере с именем SERVER1, и он присоединен к моему внутреннему домену с именем example.com.

На моем сервере Apache по умолчанию включен SSL. Мне нужно запустить 2 разных сайта, один из которых использует SSL, а другой нет.

Вот что я добавил в свой файл httpd-vhosts.conf, пытаясь заставить его работать

Как я могу заставить это работать?

<VirtualHost *:80>
   ServerName SERVER1.example.com
   Redirect permanent "C:/phpsites/app1" https://sub1.example.com/
</VirtualHost>


<VirtualHost *:80>

    DocumentRoot "C:/phpsites/app2/public"
    ServerName SERVER1.example.com
    ServerAlias sub2.example.com

    SSLEngine Off

    <Directory "C:/phpsites/app2/public">
        AllowOverride All
        Require all Granted
    </Directory>

</VirtualHost>


<VirtualHost *:443>

    DocumentRoot "C:/phpsites/app1"
    ServerName SERVER1.example.com
    ServerAlias sub1.example.com

    SSLEngine On
    SSLCertificateFile "c:/Apache24/conf/certificate/cert.crt"
    SSLCertificateKeyFile "c:/Apache24/conf/certificate/private.key"

    <Directory "C:/phpsites/app1">
        AllowOverride All
        Require all Granted
    </Directory>

</VirtualHost>

Вышеупомянутая настройка не работает должным образом. Когда я перехожу на https://sub1.example.com, Apache перенаправляет меня на правильный сайт C:/phpsites/app1. Когда я захожу на http://sub1.example.com, он перенаправляет меня на C:/phpsites/app2/public, но я не хочу, чтобы это произошло. И когда я перехожу на http://sub2.example.com, меня перенаправляют на https://sub1.example.com по какой-то причине.

Мне нужно направить любого пользователя, который ищет http://sub1.example.com или https://sub1.example.com на https://sub1.example.com.

И любые пользователи, которые ищут http://sub2.example.com или https://sub2.example.com для перехода на http://sub2.example.com

Вот что я получаю, когда выполняю httpd -D DUMP_VHOSTS

> VirtualHost configuration:
> 
> *:80 is a NameVirtualHost
> 
> 
> default server SERVER1.example.com
> (C:/Apache24/conf/extra/httpd-vhosts.conf:27) port 80 namevhost
> SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:27)
> 
> port 80 namevhost SERVER1.example.com
> (C:/Apache24/conf/extra/httpd-vhosts.conf:34) alias sub2.example.com
> 
> 
> *:443 is a NameVirtualHost default server SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:52) port 443 namevhost
> SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:52)
> alias sub1.example.com
> 
> port 443 namevhost SERVER1.example.com
> (C:/Apache24/conf/extra/httpd-ssl.conf:85)

person Junior    schedule 24.02.2016    source источник


Ответы (1)


Мои настройки на самом деле работают нормально. По какой-то причине Firefox кэширует DNS в браузере.

Мне пришлось удалить временный файл, и все заработало как часы!

Меня это беспокоит, и я хотел бы знать, почему Firefox кэширует DNS!

Я надеюсь, что эта заметка поможет кому-то в той же лодке!

person Junior    schedule 24.02.2016