Перевод MultiSite установки с HTTP на HTTPS

10 апр. 2012 г., 03:20:20
Просмотры: 18.2K
Голосов: 11

Я установил MultiSite с URL в формате http://example.com, но теперь хочу, чтобы все запросы использовали HTTPS. Пытаюсь изменить URL на https://example.com. Я обновил все значения siteurl и home в базе данных на версии с https, но сайт по-прежнему загружается по HTTP без перенаправления на HTTPS.

Я знаю, что можно настроить правила в htaccess, но это может привести к ошибкам. В обычных установках WordPress автоматически перенаправляет все запросы на канонические URL, указанные в настройках siteurl и home, поэтому предполагаю, что MultiSite должен работать аналогично.

0
Все ответы на вопрос 3
3

Я столкнулся с той же проблемой: в WordPress Multisite нет опции или настройки, которая определяет, использует ли сайт домен HTTP или HTTPS. Даже после замены всех вхождений в базе данных, посетитель сайта все еще может зайти и перемещаться по сайту по HTTP, без перенаправления на HTTPS.

Следующее простое решение сработало для меня: я добавил это правило mod_rewrite в свой файл .htaccess, прямо перед правилами перезаписи, специфичными для WordPress.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Поскольку это правило не определяет конкретный домен, оно идеально подходит для нужд WordPress Multisite.

Я нашел это правило в следующей теме: https://stackoverflow.com/questions/4398951/force-ssl-https-using-htaccess-and-mod-rewrite

3 авг. 2016 г. 13:14:09
Комментарии

Этот тип решения отлично подходит для мультисайта с унифицированным протоколом. Когда вы захотите иметь смесь SSL и не-SSL сайтов в сети мультисайтов, всё становится сложным. Очень сложным.

C C C C
9 дек. 2016 г. 04:35:14

Действительно, в моём случае это была сеть, где я перевёл все сайты на SSL одновременно.

Manu Manu
10 дек. 2016 г. 08:45:38

Размещение этого перед правилами, специфичными для WordPress, решило проблему для меня. Спасибо - это решение потребовало времени, чтобы его найти.

bastelflp bastelflp
5 мар. 2018 г. 19:28:56
6

Существуют плагины для перевода сайта на SSL. Почему бы не использовать один из них?

И у вас действительно установлен и активен SSL-сертификат?

10 апр. 2012 г. 09:45:00
Комментарии

Все плагины, которые я видел, предназначены для установки HTTPS на определенных страницах, а не на всем сайте. В обычных установках WordPress стандартный метод для перевода всего сайта на HTTPS — это установка значений siteurl и home. Даже если бы были доступные плагины, есть несколько причин, почему их использование — плохая идея, когда можно просто установить конфигурационное значение (безопасность, производительность и т. д.). Кроме того, я почти уверен, что неважно, есть ли SSL-сертификат или нет. WordPress не будет проверять это при определении канонического URL.

Ian Dunn Ian Dunn
10 апр. 2012 г. 18:59:05

Верно и верно, я просто интересовался, настроено ли у тебя это уже или нет (многие не знают, что нужен SSL-сертификат, если хочешь по-настоящему использовать SSL, отсюда и вопрос). Я вспомнил, что у меня был сайт на SSL какое-то время назад (не просто отдельные страницы, а весь сайт, как тебе нужно). Я поищу код.

Hiranthi Hiranthi
18 апр. 2012 г. 15:24:53

Хм... не смог найти код, который использовал тогда. Однако я нашел это: http://prosauce.org/blog/2010/08/enable-complete-support-for-ssl-on-wordpress/

Hiranthi Hiranthi
18 апр. 2012 г. 15:32:58

Я установил Better WP Security по другой причине, но оказалось, что у него есть опция для принудительного перевода всех запросов страниц (и фронтенда, и бэкенда) на SSL.

Ian Dunn Ian Dunn
18 апр. 2012 г. 17:54:29

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

captainblack captainblack
21 февр. 2018 г. 03:10:50

У меня тоже есть мультисайт на WordPress. Хотел бы спросить, есть ли какой-то способ перевести наш сайт с HTTP на HTTPS без использования плагина?

Jornes Jornes
17 апр. 2020 г. 20:06:37
Показать остальные 1 комментариев
1

Я изменил правила, специфичные для определенного хоста. Но теперь все остальные блоги перенаправляются на этот. Изменил "%{HTTP_HOST}" на конкретный домен и оставил часть "%{REQUEST_URI}".

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://gezentiyiz.biz%{REQUEST_URI} [L,R=301]

По моему мнению, добавление дополнительных строк RewriteRule для других доменов может решить проблему, но мне интересно, есть ли более простой способ сделать это. Потому что каждый раз при создании блога нам нужно изменять файл .htaccess???

Редактирование: Я решил проблему, изменив RewriteRule следующим образом:

RewriteRule http://gezentiyiz.biz%{REQUEST_URI} https://gezentiyiz.biz%{REQUEST_URI} [L,R=301]
30 мар. 2022 г. 16:20:10
Комментарии

"Заменил %{HTTP_HOST} на конкретный домен" - Но зачем? Это звучит как другой вопрос, а не как "ответ"? Вы пытаетесь избирательно перенаправлять только определённые сайты на HTTPS?? "Я решил проблему, изменив RewriteRule вот так" - За исключением того, что это правило не имеет смысла и ничего не сделает!? Чтобы сделать правило зависимым от имени хоста, вам нужно проверить запрошенный HTTP-заголовок Host (переменная сервера Apache HTTP_HOST) в отдельном условии (директива RewriteCond).

MrWhite MrWhite
20 апр. 2023 г. 00:41:39