У меня есть конфигурация NGINX, которая должен перенаправить пользователя на страницу входа в WordPress, если этот пользователь не вошел в WordPress, но работает не совсем корректно. Вместо этого он перенаправляет все пользователей на страницу входа, независимо от их статуса входа в систему...
установить $bad_uri 0;
if ($request_uri ~* ((^/частная-страница-1/)|(^/частная-страница-2/)|(^/частная-страница-3/)|(^/частная-страница-4/) )){
установить $bad_uri 1;
}
установить $logged_in 0;
если ($http_cookie ~* "wordpress_logged_in" ){
установить $logged_in 1;
}
установить $pls_stop "$bad_uri:$logged_in";
если ($pls_stop = "1:0"){
переписать ^/* https://my-website.org/wp-login.php навсегда;
}
С другой стороны, у меня есть другая конфигурация NGINX, которая ЯВЛЯЕТСЯ работает правильно. Как и в предыдущем случае, предполагается запретить доступ к любым файлам в определенном каталоге, если только пользователь не вошел в систему WordPress. Этот конфиг работает идеально, как задумано...
установить $bad_uri 0;
если ($request_uri ~* ^/wp-content/uploads/_private_directory/){
установить $bad_uri 1;
}
установить $logged_in 0;
если ($http_cookie ~* "wordpress_logged_in" ){
установить $logged_in 1;
}
установить $pls_stop "$bad_uri:$logged_in";
если ($pls_stop = "1:0"){
вернуть 403;
}
Учитывая тот факт, что базовая логика обоих конфигов практически одинакова, то почему первый работает только наполовину, а второй работает нормально?