Принуждение SSL в Apache без жесткого кодирования имя хоста

Остерегайтесь c:\windows\winsxs. Эта папка бесконечно вырастет с "hardlinked" копиями системного dll's. На сервере Windows Server 64 битов 2008 у нас есть выполнение в течение приблизительно 1 года, эта папка составляет 11 ГБ в размере. Была рекомендация 100 ГБ, я высоко соглашусь с этой рекомендацией. Запланируйте будущее.:)

4
задан 13 April 2017 в 15:14
1 ответ

Я всегда использовал что-то вроде следующего:

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).

Это может быть даже быстрее, так как будет на один модуль меньше для загрузки / запуска.

6
ответ дан 3 December 2019 в 03:09

Теги

Похожие вопросы