Я запускаю 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)