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.

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 .


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.