2016-04-07 2 views
0

У меня есть этот VirtualHost файл:Разница обработки VirtualHost HTTP и HTTPS

<VirtualHost *:80> 
    ServerName www.example.com 
    Redirect permanent/https://www.example.com 
</VirtualHost> 

<VirtualHost *:443> 
    DocumentRoot /var/www/dir 
    ServerName www.example.com 
    SSLEngine on 
    SSLCertificateFile /etc/ssl/certs/example.crt 
    SSLCertificateKeyFile /etc/ssl/private/example.key 
    <Directory /var/www/dir> 
     AllowOverride All 
    </Directory> 
</VirtualHost> 

Когда я просматриваю на следующий пример ссылки у меня есть этот результат:

1. URL http://www.example.com loads fine. 
2. URL http://example.com loads incorrect. 
3. URL https://www.example.com loads fine. 
4. URL https://example.com loads fine. 

Теперь я знаю, как исправить пули . Мой вопрос: Почему пуля 2 нужен отдельный VirtualHost, как этот,

<VirtualHost *:80> 
    ServerName example.com 
    Redirect permanent/https://www.example.com 
</VirtualHost> 

но при SSL он загружает нормально.

ответ

0

изменение

<VirtualHost *:80> 
     ServerName www.example.com 
     Redirect permanent/https://www.example.com 
    </VirtualHost> 

<VirtualHost *:443> 
DocumentRoot /var/www/dir 
ServerName www.example.com 
SSLEngine on 
SSLCertificateFile /etc/ssl/certs/example.crt 
SSLCertificateKeyFile /etc/ssl/private/example.key 
<Directory /var/www/dir> 
    AllowOverride All 
</Directory> 
    </VirtualHost> 

в

<VirtualHost *:80> 
ServerName example.com 
ServerAlias www.example.com 
Redirect permanent/https://www.example.com 
    </VirtualHost> 

<VirtualHost *:443> 
DocumentRoot /var/www/dir 
ServerName example.com 
ServerAlias www.example.com 
SSLEngine on 
SSLCertificateFile /etc/ssl/certs/example.crt 
SSLCertificateKeyFile /etc/ssl/private/example.key 
<Directory /var/www/dir> 
    AllowOverride All 
</Directory> 
</VirtualHost> 
+0

Спасибо за ваш ответ, и я понимаю, что этот метод работает, но почему 'ServerName www.example.com' anyways работают для ssl virtualhost, если я перейду на ссылку hhttps: //example.com? –