Wymuszenie https na wszystkich stronach Wordpress

Witam

Mam problem z wymuszeniem https’a na wszystkich stronach w Wordpressie. Generalnie https jest właczony i strona ładuje się prawidłowo, ale wystarczy że wpiszemy strone z http:// to też się ładuje i nie ma przekierowania na http’s.

W czym może być problem?

Używałem już różnych wtyczek, próbowałem w pliku htaccess, dodałem reguły do wp-configa żeby na sztywno był https i nic.

Jakie reguły i jak je dodałeś w htaccess bo to o co pytasz opiera się właśnie o tym. Ewentualnie jeśli Twój hosting ma cpanel to można to wyklikać w nim. Jednak nie powiem jak dokładnie bo nie pamiętam i nie mam dostępu do żadnego hostingu współdzielonego.

Masz Certyfikat SSL choćby od Let’s Encrypt?

jak to zwykle bywa wtyczką “Really Simple SSL”
na drugi raz radzę przeczytać książkę o Wordpressie, np. WordPress Zabezpieczanie i ratowanie stron WWW - gdzie jest to omówione dokładnie, krok po kroku.

1 polubienie

Generalnie jak ktoś wszystko rozwiązuje wtyczką, to nie ma sensu go słuchać. Jeśli więc tak proste rzeczy w książce proponują rozwiązywać wtyczkami to książka jest bezwartościowa. Każda wtyczka to ryzyko dla strony, zarówno potencjalny wektor ataku, wycieku danych oraz problemy z migracją strony i jej aktualizacją.
Więc jeśli mam do wyboru dodać/zmienić jedną czy kilka linijek lub konfigurację serwera versus wtyczkę mającą co najmniej kilkaset linii kodu plus wady o których wspomniałem wyżej, to dla mnie wybór jest oczywisty.

Przykro mi ale wtyczki nie są po to by zastąpić brak podstawowej wiedzy, ale po to by rozszerzać funkcje WP, których on nie oferuje. Używanie ich zamiast innych podstawowych mechanizmów jest błędem.

3 polubienia

Jeśli SSL jest prawidłowo uruchomiony, a odniesienie do private_html zastosowane, to wystarczy w .htaccess dodać:

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

W przypadku Let’s encrypt, będzie to:

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]