Apache2 .htaccess перенаправляет https не работает

Я понимаю, что это вопрос, на который был дан ответ, но другие решения почему-то не работают на меня. Я пытаюсь переписать http как https, но я все еще получаю «Bad Request», когда я пытаюсь просматривать мой сайт с помощью http.

Вот код в моем .htaccess:

RewriteEngine on RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

У меня есть AllowOverride All в конфигурации VirtualHost, и я убедился, что mod_rewrite включен.

Любая помощь приветствуется. Дайте мне знать, если вам нужна дополнительная информация.

Редактировать:

Вот мой полный файл .htaccess:

 RewriteEngine on RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html 

ВОЗМОЖНО Решение: Я использовал Apache 2.2. Это может быть ошибка со старой версией Apache. Я собираюсь обновиться, и я снова отправлю сообщение, когда узнаю больше.

Прежде всего, вы должны быть уверены, что разрешите mod_rewrite и ssl на вашем apache, по этим кодам

 sudo a2enmod rewrite sudo a2enmod ssl 

а затем перезапустите апач

  sudo service apache2 restart 

теперь выполните следующие действия.

 sudo nano /etc/apache2/sites-enabled/000-default.conf 

и добавьте эти коды

  ServerName my.site.com ServerAlias my.site.com DocumentRoot /var/www/SITE-PATH  AllowOverride All Order Allow,Deny Allow from All  ErrorLog /var/log/apache2/project_error.log CustomLog /var/log/apache2/project_access.log combined  

затем перейдите в каталог вашего сайта /var/www/SITE-PATH и добавьте этот код в свой .htaccess

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 

и для вашего кредита ssl на пути /etc/apache2/sites-enabled/default-ssl.conf вы должны иметь что-то вроде этого

   ServerAdmin webmaster@localhost ServerAdmin admin@example.com ServerName my.site.com #important ServerAlias my.site.com #important DocumentRoot /var/www/SITE-PATH #important ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt #important SSLCertificateKeyFile /etc/apache2/ssl/apache.key #important SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key  SSLOptions +StdEnvVars   SSLOptions +StdEnvVars  BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown   # vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

если вы выполните все шаги правильно, вы должны иметь это в конце

http://my.site.com => redirect to => https://my.site.com

EDIT: для более подробной информации о SSL, пожалуйста, следуйте инструкциям по созданию сертификата SSL на Apache для Ubuntu 14.04 и этой записи

Попробуйте: RewriteEngine On RewriteCond% {HTTPS}! = On RewriteRule ^. * $ Https: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]