Odpowiedzi:
Oto kompletny przewodnik - Włącz pełną obsługę SSL w Wordpress
Proste sprawdzenie is_ssl()
powinno to zrobić:
add_action( 'plugins_loaded', 'wpse_2718_force_ssl' );
function wpse_2718_force_ssl()
{
if ( is_ssl() )
return;
wp_redirect(
'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
);
exit;
}
Ale zrobiłbym to w .htaccess, aby również złapać obrazy:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
W przypadku ISS zobacz tę odpowiedź na temat Przepełnienia stosu .
Dodaj tę regułę na początku .htaccess:
# BEGIN Force SSL
# This should be the first rule before other rules
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>
# END Force SSL
Powinno to nastąpić przed zasadami WordPressa.
Użyłem Really Simple SSL na moich wszystkich stronach klientów i działa bardzo dobrze. Jeśli nie chcesz modyfikować kodu, po prostu zainstaluj tę wtyczkę i skonfiguruj ją.