Назад | Перейти на главную страницу

Перенаправление Apache HTTP на HTTPS не работает

Я пытаюсь настроить перенаправление HTTP на HTTPS по умолчанию. Как-то ни mod_rewrite ни Redirect работай. Я упускаю что-то очевидное?

 Listen 80
 Listen 443

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

<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias example.com
    SSLEngine on
    SSLCertificateFile "/etc/ssl/certs/example.com.pem"
    SSLCertificateKeyFile "/etc/ssl/private/example.com.key"

    <Directory "/web/www.example.com">
            allow from all
            Options -Indexes
    </Directory>
    #php_admin_flag safe_mode Off
    php_admin_value open_basedir /tmp/:/web/www.example.com
    DocumentRoot /web/www.example.com
    </VirtualHost>

Вот пример конфигурации, которую я написал в прошлом, используя mod_rewrite.

<VirtualHost *:80>
  ServerName  www.foo.com
  ServerAlias foo.com   
  RewriteEngine on
  RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
</VirtualHost>


<VirtualHost *:443>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin admin@foo.com
  ServerName  www.foo.com
  ServerAlias foo.com

  SSLEngine on
  SSLProtocol all
  SSLCertificateFile /etc/apache2/ssl/www.foo.com/foo_com.crt
  SSLCertificateKeyFile /etc/apache2/ssl/www.foo.com/foo_com.key
  SSLCertificateChainFile /etc/apache2/ssl/www.foo.com/intermediate.crt

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /var/www/foo.com/public_html
</VirtualHost>