Как мне просто заставить весь сайт использовать безопасное соединение? [закрыто]

В Drupal 7 я использовал модуль Secure login для запуска сайта в защищенном соединении, но, похоже, он не возвращается. вернуться к http при выходе. Я хотел бы просто запустить весь сайт как https://в качестве упрощения.

Есть ли простой способ сделать это без использования модуля?


Начните с чтения Включение защиты HTTP (HTTPS). Пожалуйста, задавайте более конкретные вопросы и/или обновите свой вопрос, если это не помогает.


38

Если вы хотите перенаправить все свои страницы, чтобы принудительно использовать SSL, добавьте это в свой файл .htaccess .

  # Перенаправление на HTTPSRewriteCond% {HTTPS} offRewriteCond% {HTTP: X-Forwarded-Proto}! httpsRewriteRule ^ (. *) $ https://% {HTTP_HOST}% {REQUEST_URI} [L,  R = 301]  

Это должно быть помещено непосредственно после RewriteEngine на , если у вас не было предыдущих перезаписей.

Улучшите этот ответ
отредактировано 28 нояб., В 8:32
leymannx
13.8k66 золотых значков5050 серебряных значков888 8 бронзовых значков
ответ дан 25 ноя 2014 в 19:07
  • Каждый раз, когда Drupal Core обновляется, .htaccess воссоздается, поэтому мы должны каждый раз добавлять эти строки. — Себастьен Жикель 9 нояб., 20:38
добавить комментарий |

Если вы хотите перенаправить все свои страницы, чтобы принудительно использовать SSL, добавьте это в свой .htaccess file.

  # Перенаправление на HTTPSRewriteCond% {HTTPS} offRewriteCond% {HTTP: X-Forwarded-Proto}! httpsRewriteRule ^ (. *) $ https:// % {HTTP_HOST}% {REQUEST_URI} [L, R = 301]  

Это должно быть помещено непосредственно после RewriteEngine на , если у вас нет предыдущих перезаписей.


1

Еще один удобный трюк, если у вас есть root-доступ к Apache для изменения ваших директив vhost, — это добавить это в директиву SSL для сайта. Большинство современных браузеров подчиняются этой директиве (IE9 не выполняет)

  Заголовок всегда устанавливает Strict-Transport-Security "max-age = 63072000"  

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

Это удобный способ взлома.

ПРИМЕЧАНИЕ. Это будет работать, только если у вас есть VALID SSL-сертификат (не самоподписанный, с истекшим сроком действия или неверный по иным причинам) на вашем сайте. Если вы этого не сделаете, браузер не сможет подключиться к нему, пока не истечет период максимального возраста.

Улучшите этот ответ
отредактировано 13 февраля 2017 г. в 16:30
Сообщество ♦
1
ответили 25 ноября ’14 в 19:24
  • Некоторые дополнительные примечания можно найти на docs.nextcloud.com/server/latest/admin_manual/installation/… — leymannx 21 фев.2020 в 13:25
добавить комментарий |

Другой удобный трюк, если у вас есть root-доступ к Apache для изменения ваших директив vhost, — это добавить это в директиву SSL для сайта. Большинство современных браузеров подчиняются этой директиве (IE9 не выполняет)

  Заголовок всегда устанавливает Strict-Transport-Security "max-age = 63072000"  

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

Это удобный способ взлома.

ПРИМЕЧАНИЕ. Это будет работать, только если у вас есть VALID SSL-сертификат (не самоподписанный, с истекшим сроком действия или неверный по иным причинам) на вашем сайте. Если вы этого не сделаете, это не позволит браузеру подключиться к нему до истечения периода максимального возраста.


0

Есть еще один вариант, который вы можете попробовать — это то, что мне нужно для одной из моих установок, и для него не нужны дополнительные модули:

Во-первых, в вашем .htaccess:

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

Это должно быть добавлено после:

   RewriteEngine на  

Затем в вашем settings.php:

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

Кроме того, вы можете захотеть проверить внешние ресурсы, такие как веб-шрифты и другие ссылки, которые должны поступать из домена https, чтобы избежать предупреждений о сертификатах.

Надеюсь, это поможет.

Улучшите этот ответ
ответил 09 окт., В 3:41
добавить комментарий |

Есть еще один вариант, который вы можете попробовать — это то, что мне нужно для одной из моих установок, и для него не нужны дополнительные модули:

Во-первых, в вашем .htaccess:

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

Это должно быть добавлено после:

  RewriteEngine на  

Затем в вашем settings.php:

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

Кроме того, вы можете захотеть проверить внешние ресурсы, такие как веб-шрифты и другие ссылки, которые должны поступать из домена https, чтобы избежать предупреждений о сертификатах.

Надеюсь, это поможет.


-2

Есть еще одно решение — просто добавить $ _SERVER [‘HTTPS’] = ‘On’; в файле settings.php

См. больше на https://www.drupal.org/https-information#comment-9901783

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

Улучшите этот ответ
ответил 7 мая 2015, 21:06
  • 2
    Не было кажется, что трюк справится сам. Пришлось очистить кеши drupal, но тогда, хотя страницы drupal обслуживались как https, ресурсы, такие как изображения, не использовались. Они были загружены, но браузер предупреждал об этом (в консоли), а на значке блокировки было предупреждение. Мне пришлось добавить директиву htaccess из ответа Рикса, чтобы получить правильный значок блокировки. — commonpike 21 июн 2015, 22:00
добавить комментарий |

Есть другое решение, которое состоит в том, чтобы просто добавить $ _SERVER [‘HTTPS’] = ‘On’; в файле settings.php

См. больше на https://www.drupal.org/https-information#comment-9901783

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



перенаправить сайт drupal 7 на https

У меня есть сайт Drupal 7 с файлом .htaccess по умолчанию. Мне нужно перенаправить все возможности сайта на один сайт https.
Мне нужно:
http://example.com -> https://example. com http://www.example.com -> https://example.com https://www.example.com -> https://example.com
Я пробовал много варианты, но я все равно получаю сообщение об ошибке: «Эта веб-страница имеет цикл перенаправления».

.htaccess по умолчанию выглядит так: .htaccess

[отредактировано] Я нашел решение:
для удаления www и выхода на https:
RewriteCond% {HTTP_HOST} ^ www . (. +) $ [NC]
RewriteRule ^ https% {ENV: protossl}://% 1% {REQUEST_URI} [L, R = 301]

для перенаправления без www на https:
RewriteCond% {SERVER_PORT} 80 RewriteRule ^ (. *) $ Https://% {HTTP_HOST}% {REQUEST_URI} [R = 301, QSA, L]


0

Возможно, кого-то интересуют эти перенаправления (на https И на www. *):

  http://example.com на https: //www.example.com

and

http://www.example.com на https://www  .example.com  

.htaccess:

  RewriteCond% {HTTPS} offRewriteRule. * https://% {HTTP_HOST}  % {REQUEST_URI} [L, R = 301] RewriteCond% {HTTP_HOST}! ^ Www .  [NC] RewriteRule. * Https://www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]  

Улучшите этот ответ
ответил 18 января ’18 в 17:39
добавить комментарий |

Может быть, кого-то интересуют эти перенаправления (на https И на www. *):

  http://example.com на https://www.example.com  

и

  http: //www.example.com на https://www.example.com  

.htaccess:

  RewriteCond% {  HTTPS} offRewriteRule. * Https://% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] RewriteCond% {HTTP_HOST}! ^ Www .  [NC] RewriteRule. * Https://www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]  

0

Вы также можете попробовать установить параметр base_url в settings.php. По умолчанию он закомментирован, но вы можете раскомментировать его и установить желаемый протокол:

  $ base_url = 'https://'.$_SERVER [' SERVER_NAME ']  ; //БЕЗ завершающей косой черты!  

Это спасало меня несколько раз, в частности, при попытке принудительно установить HTTPS из-за прокси-сервера и при использовании модуля доступа к домену в Drupal 7. Я нашел решение здесь.

Улучшите этот ответ
ответил 27 янв., 0:48
добавить комментарий |

Вы также можете попробовать установить параметр base_url в settings.php. По умолчанию он закомментирован, но вы можете раскомментировать его и установить желаемый протокол:

  $ base_url = 'https://'.$_SERVER [' SERVER_NAME ']  ; //БЕЗ завершающей косой черты!  

Это спасало меня несколько раз, в частности, при попытке принудительно установить HTTPS из-за прокси-сервера и при использовании модуля доступа к домену в Drupal 7. Я нашел решение здесь.

Оцените статью
logicle.ru
Добавить комментарий