Назад | Перейти на главную страницу

Поведение http-https для посещений из клиента Internet Explorer

У моего веб-сайта есть сертификат SSL (пример URL: https://subdomain.example.com). В Apache он настроен как для порта 80, так и для порта 443. Итак, в следующей конфигурации любой, кто заходит на http://subdomain.example.com отправляется https://subdomain.example.com . Но для посещений из Internet Explorer перенаправления не происходит. Вместо этого при посещении http появляется сообщение «Internet Explorer не может отображать веб-страницу». со списком клиентских решений, которые стоит попробовать.

Есть какие-нибудь идеи о том, как исправить конфигурацию, чтобы посещения IE имели такое же поведение, как и другие браузеры (то есть автоматически отправляли http на https)?

NameVirtualHost *:443

<VirtualHost *:80>
  DocumentRoot /var/www/somewebroot
  ServerName subdomain.example.com
</VirtualHost>

<VirtualHost *:443>
     DocumentRoot /var/www/somewebroot
     ServerName subdomain.example.com
    #   SSL CERTS HERE
</VirtualHost>

* Протестировано IE8, IE9 beta

Размещение этого кода в определении виртуального хоста HTTP должно сделать это.

RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^/(.*) https://subdomain.example.com [R=301,L]

Если вы тестируете изменения, у вас могут возникнуть проблемы с IE, если вы не закроете все окна IE и не перезапустите его. IE может агрессивно использовать свой кеш.

РЕДАКТИРОВАТЬ: вам необходимо убедиться, что mod_rewrite включен. Команда a2enmod rewrite. Он сообщит вам, включен ли модуль. В противном случае вам нужно будет выключить и перезапустить сервер после включения модуля.

Добавьте приведенные выше строки в определение вашего виртуального хоста и используйте apache2ctl graceful для перезагрузки измененной конфигурации. В Документация Apache есть подробности о переписывании.

Вы должны увидеть перенаправление в виде запроса статуса 301 в журнале доступа, за которым следует статус 200 или 304 для HTTPS-соединения. Отображаемый URL-адрес должен измениться на новое местоположение.

Регистрация порта в расширенном формате журнала помогает увидеть, с каким подключением происходит что-то. Или используйте отдельные журналы для каждого виртуального сервера.