Apache не перенаправляет HTTP на HTTPS

Apache не перенаправляет HTTP на HTTPS

Когда я ввожу в браузер не-SSL URL моего веб-сайта "cms00.example.com", он не перенаправляет наhttps://cms00.example.com. Если я ввожу HTTP-адрес, я вижу сайт, а если я ввожу HTTPS-адрес, я вижу сайт. Я просто не могу заставить работать перенаправление с http на https. Я прочитал множество статей о том, как это сделать, и перепробовал все предложения, но моя конфигурация все еще не работает. Я использую Apache 2.4.10 на Debian 8, и это мой первый опыт работы с Apache.

Я выполнил эти две команды и убедился, что модули rewrite и ssl загружены:

sudo a2emod rewrite   # <- already enabled
sudo a2emod ssl       # <- already enabled

Я не вносил никаких изменений в /etc/apache2/apache2.conf и не создавал никаких дополнительных файлов .htaccess.

Вот мой файл конфигурации:

# /etc/apache2/sites-available/vhosts.conf
DirectoryIndex index.php index.html

<VirtualHost *:80>
  ServerName cms00.example.com
  DocumentRoot "/var/www/html"
  Redirect permanent / https://cms00.example.com
</VirtualHost>

<VirtualHost *:443>
  ServerName cms00.example.com
  DocumentRoot "/var/www/html"

  SSLEngine on
  SSLCipherSuite AES256+EECDH:AES256+EDH
  SSLProtocol All -SSLv2 -SSLv3
  SSLHonorCipherOrder On
  SSLCompression off
  SSLCertificateFile /etc/apache2/ssl/example.com.crt
  SSLCertificateKeyFile /etc/apache2/ssl/private/example.com.key

  <Directory "/var/www/html">
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
  </Directory>
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

решение1

Я решил проблему. Вот что происходит. /etc/apache2/apache2.conf включает вызов всех файлов конфигурации, которые имеют символические ссылки в /etc/apache2/sites-enabled. Поскольку в этом каталоге была символическая ссылка, указывающая на /etc/apache2/sites-available/000-default.conf, этот последний файл конфигурации загружался и переопределял блоки и директивы в моем файле vhosts.conf. После того, как я удалил эту символическую ссылку, мои настройки vhosts.conf смогли вступить в силу. Урок для меня заключался в том, что любой файл, имеющий символическую ссылку в sites-enabled, будет включен.

Связанный контент