Правильное перенаправление Apache с http на https
Я настроил новый виртуальный хост для нового сайта на своем сервере, но он ведет себя странно, несмотря на то, что у него те же настройки, что и у моего исходного сайта.
Я хочу, чтобы все запросы перенаправлялись на HTTPS, проще говоря. На моем основном сайте (рабочем) У меня это указано в конфигурации VirtualHost
и в .htaccess
У меня есть дополнительное правило, указанное для разрешения коротких URL-адресов. В частности, проблема на нерабочем сайте заключается в том, что если я попытаюсь перейти на example.com/url
, перенаправление перейдет на https://example.comurl
и удаляет необходимые /
из URL-адреса.
Я скопировал точную конфигурацию в новый файл VirtualHost
и .htaccess
с рабочего сайта, поэтому я не уверен, почему он не работает на новом. Все мои записи DNS для обоих сайтов используют записи A, чтобы указать на это, никаких перенаправлений или чего-либо еще на уровне DNS не происходит. Я попытался поставить /
в конце строк Redirect
в приведенном ниже коде, но проблема не была решена. Сервер Ubuntu 14.04, а Apache версии 2.4.7. Оба сайта это отдельные доменные имена с отдельными используемыми файлами .conf
, но они размещены на одном сервере с одним и тем же IP-адресом. Как я могу решить эту проблему?
Соответствующий код в VirtualHost
:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
И в .htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*.html$ %{REQUEST_FILENAME}.html [L]
В случае, если это поможет/имеет значение, это конфигурация SSL в моем файле VirtualHost, хотя она размещена в самом начале файла вне всех других директив:
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
И это конфигурация специально для VirtualHost
для сайт:
<VirtualHost *:443>
ServerName example.com
ServerAdmin user@example.com
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/errorexample.log
Options -Indexes
SSLEngine on
SSLCertificateFile /etc/ssl/example/examplecert.crt
SSLCertificateKeyFile /etc/ssl/example/examplekey.key
SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>