Làm thế nào để buộc SSL cho tất cả các yêu cầu?


9

Có cách nào để buộc SSL cho tất cả các yêu cầu không? Giống như tùy chọn sử dụng ssl quản trị, nhưng cho tất cả các yêu cầu, bao gồm cả những yêu cầu chưa đăng nhập.

Câu trả lời:



7

Một kiểm tra đơn giản is_ssl()nên làm điều đó:

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

Nhưng tôi cũng sẽ làm điều này trong .htaccess để bắt hình ảnh:

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

Đối với ISS, xem câu trả lời này trên Stack Overflow .


1

Thêm quy tắc này vào đầu .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

Điều này nên có trước các quy tắc của WordPress.


Mã từ codex.wordpress.org/Ad dùng_Over_SSL gần như giống hệt nhau ngoại trừ một vài ký tự regex, bất kỳ ý tưởng nào nếu một trong hai là stabler?
Bối cảnh có thể xác minh được Gab-

-1

Tôi đã sử dụng SSL Simple Simple cho tất cả các trang web của khách hàng và nó hoạt động rất tốt. Nếu bạn không muốn sửa đổi mã, chỉ cần cài đặt plugin này và định cấu hình nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.