Як просто змусити весь сайт використовувати безпечне з'єднання? [зачинено]


18

У Drupal 7 я використовував модуль безпечного входу для запуску сайту на захищеному з’єднанні, але, схоже, він не повертається до http при виході. Я хотів би просто запустити весь сайт як https: // як спрощення.

Чи є простий спосіб зробити це без використання модуля?


Сьогодні я лише встановив модуль Htaccess , змінив існуючі налаштування та розгорнув цей профіль. Здається, ідеально працює ...
Олексій Зубенко

Відповіді:



35

Якщо ви хочете перенаправити всі ваші сторінки, щоб змусити використовувати SSL, додайте це у свій .htaccessфайл.

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Це слід розмістити безпосередньо після того, RewriteEngine on як у вас немає попередніх переписувань.


1

Ще один зручний трюк, якщо у вас є кореневий доступ до Apache, щоб змінити свої директиви vhost, це додати це до директиви SSL для сайту. Більшість сучасних браузерів дотримуються цієї директиви (IE9 не відповідає)

Header always set Strict-Transport-Security "max-age=63072000"

Ви можете встановити вік у будь-який час. Для цього потрібно повідомити веб-браузери, які підкоряються цьому ТОЛЬКО, використовуючи SSL для спілкування з вашим веб-сайтом і ніколи не просто HTTP. Це додає трохи впевненості у всій ситуації комутації HTTP / HTTPS.

Це зручний злом.

ПРИМІТКА. Це буде працювати лише в тому випадку, якщо у вас на вашому сайті є сертифікат VALID SSL (не підписаний, закінчився термін дії або неправильно). Якщо цього не зробити, браузер не зможе підключитися до нього, поки не закінчиться максимальний віковий період.


0

Ви можете скористатися ще одним варіантом, який мені знадобився для однієї з моїх установок, і для нього не потрібні додаткові модулі:

По-перше, у вашому .htaccess:

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^www\.yourdomainhere\.com*
RewriteRule ^(.*)$ https://www.yourdomainhere.com/ [L,R=301]

Це слід додати після:

RewriteEngine on

Потім у ваших settings.php:

$base_url = 'https://www.yourdomainhere.com'; 

Також ви можете перевірити наявність зовнішніх ресурсів, таких як веб-шрифти та інші посилання, які повинні надходити з домену https, щоб уникнути попереджень сертифікатів.

Сподіваюся, це допомагає.


-2

Є ще одне рішення - просто додати $ _SERVER ['HTTPS'] = 'Увімкнено'; у файлі settings.php

Детальніше дивіться на https://www.drupal.org/https-information#comment-9901783

Однак виявляється, що метод htaccess переспрямовує незалежно, тоді як файл settings.php вимагає очищення кешу браузера.


2
Не сподівався зробити трюк сам. Доводилося очищати кеші друпалів, але тоді, хоча друпальські сторінки подавались як https, ресурси, подібні до зображень, не були. Вони були завантажені, але браузер попереджав про це (на консолі), а піктограма блокування мала попередження. Мені довелося додати директиву htaccess з відповіді Ricks, щоб отримати належну піктограму блокування.
commonpike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.