
Когда я ввожу в браузер не-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, будет включен.