Bagaimana cara memaksa SSL untuk semua permintaan?

9

Apakah ada cara untuk memaksa SSL untuk semua permintaan? Sama seperti opsi untuk menggunakan admin ssl, tetapi untuk semua permintaan, termasuk yang tidak masuk.

grm
sumber

Jawaban:

7

Pemeriksaan sederhana untuk itu is_ssl()harus dilakukan:

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;
}

Tapi saya akan melakukan ini di .htaccess untuk menangkap gambar juga:

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

Untuk ISS lihat jawaban ini di Stack Overflow .

fuxia
sumber
1

Tambahkan aturan ini ke bagian atas .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

Ini harus ada sebelum aturan WordPress.

kosinix
sumber
Kode dari codex.wordpress.org/Administration_Over_SSL hampir identik kecuali untuk beberapa karakter regex, ada ide apakah keduanya lebih stabil?
prosody-Gab Vereable Konteks
-1

Saya telah menggunakan SSL Sangat Sederhana untuk semua situs klien saya dan berfungsi dengan sangat baik. Jika Anda tidak ingin mengubah kode, cukup instal plugin ini dan konfigurasikan.

Sam
sumber