Tôi có một cấu hình NGINX đó là phải chuyển hướng người dùng đến trang đăng nhập WordPress nếu người dùng đó chưa đăng nhập vào WordPress, nhưng nó không hoạt động chính xác. Thay vào đó, nó chuyển hướng tất cả các người dùng vào trang đăng nhập, bất kể trạng thái đăng nhập của họ là gì...
đặt $bad_uri 0;
if ($request_uri ~* ((^/trang-riêng-1/)|(^/trang-riêng-2/)|(^/trang-riêng-3/)|(^/trang-riêng-4/) )){
đặt $bad_uri 1;
}
đặt $logged_in 0;
nếu ( $http_cookie ~* "wordpress_logged_in" ){
đặt $logged_in 1;
}
đặt $pls_stop "$bad_uri:$logged_in";
nếu ( $pls_stop = "1:0" ){
viết lại ^/* https://my-website.org/wp-login.php vĩnh viễn;
}
Mặt khác, tôi có một cấu hình NGINX khác LÀ làm việc chính xác. Tương tự như trên, nó được cho là cấm truy cập vào bất kỳ tệp nào trong một thư mục cụ thể, trừ khi người dùng đăng nhập vào WordPress. Cấu hình này hoạt động hoàn hảo như dự định ...
đặt $bad_uri 0;
if ($request_uri ~* ^/wp-content/uploads/_private_directory/){
đặt $bad_uri 1;
}
đặt $logged_in 0;
nếu ( $http_cookie ~* "wordpress_logged_in" ){
đặt $logged_in 1;
}
đặt $pls_stop "$bad_uri:$logged_in";
nếu ( $pls_stop = "1:0" ){
trả lại 403;
}
Xem xét thực tế rằng logic cơ bản cho cả hai cấu hình thực tế giống hệt nhau, vậy thì tại sao cấu hình đầu tiên chỉ hoạt động được một nửa còn cấu hình thứ hai thì hoạt động tốt?