Остерегайтесь c:\windows\winsxs. Эта папка бесконечно вырастет с "hardlinked" копиями системного dll's. На сервере Windows Server 64 битов 2008 у нас есть выполнение в течение приблизительно 1 года, эта папка составляет 11 ГБ в размере. Была рекомендация 100 ГБ, я высоко соглашусь с этой рекомендацией. Запланируйте будущее.:)
Я всегда использовал что-то вроде следующего:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Потому что иногда мне нравится обслуживать HTTP через порты, отличные от 80. Ну, я не люблю это делать, но иногда потребности должны и т. д.
% {HTTPS}
будет истинным, например, если SSL используется через порт 80.
Я думаю, что обычно использую
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
% {HTTP_HOST}
всегда будет то, что установлено как заголовок Host:
клиентом.
Мне пришло в голову, что есть другой способ сделать это.
<VirtualHost *:80>
ServerName mysite.example.com
Redirect permanent / https://mysite.example.com/
</VirtualHost>
Вы заметите, что в блоке выше нет DocumentRoot. Если вы перенаправляете все , он вам не нужен.
Если вы хотите перенаправить только часть вашего сайта на SSL, вы можете просто сделать
Redirect permanent /secure https://mysite.example.com/secure
Я думаю, что вариант перенаправления более предпочтителен для принудительного использования HTTPS всего сайта, потому что это на один уровень безумия меньше (как любезно предоставлено mod_rewrite).
Это может быть даже быстрее, так как будет на один модуль меньше для загрузки / запуска.