Przełączanie instalacji MultiSite z HTTP na HTTPS

11

Zainstalowałem MultiSite z adresem URL ustawionym jako http://example.com , ale teraz chcę zmusić wszystkie żądania do przejścia przez HTTPS, więc próbuję zmienić adres URL na https://example.com . Przejrzałem bazę danych i zaktualizowałem wszystkie wartości siteurli home, aby mieć https , ale witryna nadal ładuje się przez HTTP, zamiast przekierowywać do HTTPS.

Wiem, że mogłem skonfigurować niektóre reguły htaccess, ale jest to podatne na błędy. W zwykłych instalacjach WordPress automatycznie przekieruje wszystkie żądania do kanonicznych adresów URL zdefiniowanych w ustawieniach siteurli home, więc zakładam, że MultiSite też.

Ian Dunn
źródło

Odpowiedzi:

2

Istnieją wtyczki do ustawienia witryny na SSL. Dlaczego nie skorzystać z jednego z nich?

Czy masz zainstalowany i aktywny certyfikat SSL?

Hiranthi
źródło
Wszystkie wtyczki, które widziałem, ustawiają określone strony do korzystania z HTTPS, a nie całą witrynę. W zwykłych instalacjach WP normalną metodą korzystania z HTTPS przez całą witrynę jest ustawienie wartości siteurli home. Nawet jeśli były dostępne, istnieje kilka powodów, dla których używanie wtyczki jest złym pomysłem, gdy można po prostu ustawić wartość konfiguracji (bezpieczeństwo, wydajność itp.). Jestem też całkiem pewien, że nie ma znaczenia, czy certyfikat SSL jest już dostępny, czy nie. WordPress nie sprawdzi, czy kiedy określa, jaki jest kanoniczny adres URL.
Ian Dunn,
Prawda i prawda, po prostu zastanawiałem się, czy już go skonfigurowałeś, czy nie (mnóstwo ludzi nie wie, że potrzebujesz certyfikatu SSL, jeśli naprawdę chcesz używać SSL, stąd Q). Właśnie przypomniałem sobie, że miałem kiedyś swoją witrynę w SSL (nie tylko określone strony, ale całą witrynę taką, jaką chcesz). Sprawdzę kod.
Hiranthi
Hmm .. nie mogłem znaleźć kodu, którego wtedy użyłem. Znalazłem to jednak: prosauce.org/blog/2010/08/…
Hiranthi
Zainstalowałem Better WP Security z innego powodu, ale okazuje się, że ma opcję wymuszenia przejścia przez SSL wszystkich żądań stron (przód i tył).
Ian Dunn,
1
Najlepszym rozwiązaniem byłoby takie, które nie korzysta z wtyczki IMHO. W ten sposób każde żądanie nie musi być analizowane przez wtyczkę.
captainblack
3

Napotkałem ten sam problem: w przypadku wielu witryn WordPress nie ma opcji ani ustawienia, które określa, czy domeną witryny jest HTTP czy HTTPS. Nawet po zastąpieniu wszystkich wystąpień w bazie danych, odwiedzający witrynę może nadal wchodzić i poruszać się po stronie w HTTP, bez przekierowywania do HTTPS.

Działa dla mnie następujące proste rozwiązanie: dodałem tę mod_rewriteregułę do mojego pliku .htaccess, tuż przed regułami przepisywania specyficznymi dla WordPress.

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

Ponieważ ta reguła nie definiuje konkretnej domeny, jest idealna na potrzeby wielu witryn WordPress.

Znalazłem tę regułę w następującym wątku: /programming/4398951/force-ssl-https-using-htaccess-and-mod-rewrite

Manu
źródło
Ten rodzaj rozwiązania jest doskonały w przypadku wielu witryn z homogenizacją protokołu. Gdy chcesz mieć połączenie witryn SSL i innych niż SSL w sieci wielu witryn, sprawy stają się skomplikowane. Bardzo skomplikowane.
KK
Rzeczywiście, moim kontekstem była sieć, w której jednocześnie przełączałem wszystkie witryny na SSL.
Manu,
Umieszczenie go przed konkretnymi regułami WordPress rozwiązało dla mnie. Dzięki - znalezienie tego rozwiązania zajęło mi trochę czasu.
bastelflp,