Нет 100% достаточного количества информации здесь для продолжения, но в обычной установке SSL по умолчанию (Red Hat/CentOS/Fedora, например), VirtualHost для SSL создан в своем собственном контейнере. Использование mod_rewrite требует как минимум, чтобы "AllowOverride FileInfo", который будет установлен на документе, поддержал его для действия.
Проверьте свою конфигурацию на SSL (/etc/httpd/conf.d/ssl.conf по умолчанию), удостоверьтесь, что это смотрит что-то как:
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride FileInfo
</Directory>
Значение по умолчанию для AllowOverride не 'Ни один', таким образом, любая другая установка (такая как 'Все'), который добавляет возможности FileInfo, в порядке.
http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride
Могло быть возможно, что mod_rewrite не включен для сервера HTTPS, или что .htaccess не используется?
Проверьте AllowOveride
полномочия, используемые для обычного сайта и, выдерживают сравнение с версией SSL, вероятно, несоответствие. Вероятно, представленный для улучшения безопасности, если не несчастный случай.
mod_rewrite
рядом с основой, хотя, таким образом, любой достойный поставщик услуг хостинга должен помочь уладить это.
«работает на apache2 + ubuntu precision»
Подобная проблема возникла у меня, когда я использовал Slim framework и пытался удалить index.php, необходимый в URL-адресе. Перезапись отлично работала для http, но для https: он показывал, что URL-адрес не найден, что означало, что перезапись не работала.
После нескольких попыток я придумал следующее решение:
cd /etc/apache2/sites-enabled
sudo vim default-ssl
Изменить AllowOverride None на Все . Точно так же sudo vim ssl
У меня была аналогичная проблема, это то, что у меня сработало.
Убедитесь, что в вашем httpd.conf есть оба:
ServerName domain.com
ServerAlias www. domain.com