Это должно быть очень просто!
Я пытаюсь включить SSL только для одного поддомена. Однако, когда я это делаю, все мои поддомены и мой основной домен в конечном итоге указывают на корень документа этого поддомена.
Чтобы было ясно, когда я указываю свой браузер, я получаю следующие корни документов:
http://domain.com -> /var/www [GOOD]
http://sub1.domain.com -> /media/large/sub1 [GOOD]
http://sub2.domain.com -> /var/www [Strange, but doesn't bother me. And error message would be better if possible, or a redirect to https.]
https://domain.com -> /media/large/sub2 [BAD]
https://sub1.domain.com -> /media/large/sub2 [BAD]
https://sub2.domain.com -> /media/large/sub2 [GOOD]
Эти 2 сектора [BAD] - вот что меня действительно беспокоит. Я не хочу, чтобы люди, переходящие по этим URL-адресам, получали доступ к sub2
корень документа.
Это мое ports.conf
:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
А вот и все мои / etc / apache2 / sites-enabled
domain.com
:
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /var/www
</VirtualHost>
sub1.domain.com
:
<VirtualHost *:80>
ServerName sub1.domain.com
DocumentRoot /media/large/sub1
</VirtualHost>
sub2.domain.com
:
<VirtualHost *:443>
ServerName sub2.domain.com:443
DocumentRoot /media/large/sub2
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
Если это имеет значение, это на сервере Ubuntu по умолчанию.
У вас есть только один VirtualHost, определенный на порту 443, поэтому любой доступ к порту 443 должен будет использовать эту конфигурацию, независимо от того, какое доменное имя они используют. Если это не то, что вы хотите, настройте конфигурации VirtualHost для других доменов и укажите их в другом месте.
То же самое в обратном порядке для вашей проблемы с http://sub2.domain.com - вы не определили VirtualHost для этого доменного имени, поэтому он использует ваш VirtualHost по умолчанию, который является первым, и поэтому он использует / var / www в качестве корневого.