Am o configurație NGINX care este ar trebui să redirecționează un utilizator către pagina de conectare WordPress dacă acel utilizator nu este conectat la WordPress, dar nu funcționează corect. În schimb, redirecționează toate utilizatorii la pagina de conectare, indiferent de starea lor de conectare...
set $bad_uri 0;
if ($request_uri ~* ((^/private-page-1/)|(^/private-page-2/)|(^/private-page-3/)|(^/private-page-4/) )){
set $bad_uri 1;
}
setați $logged_in 0;
dacă ( $http_cookie ~* „wordpress_logged_in” ){
setați $logged_in 1;
}
setați $pls_stop „$bad_uri:$logged_in”;
dacă ( $pls_stop = "1:0" ){
rescrie ^/* https://my-website.org/wp-login.php permanent;
}
Pe de altă parte, am o altă configurație NGINX care ESTE functioneaza corect. Similar cu cele de mai sus, ar trebui să interzică accesul la orice fișiere dintr-un anumit director, cu excepția cazului în care utilizatorul este conectat la WordPress. Această configurație funcționează perfect așa cum a fost prevăzut...
set $bad_uri 0;
dacă ($request_uri ~* ^/wp-content/uploads/_private_directory/){
set $bad_uri 1;
}
setați $logged_in 0;
dacă ( $http_cookie ~* „wordpress_logged_in” ){
setați $logged_in 1;
}
setați $pls_stop „$bad_uri:$logged_in”;
dacă ( $pls_stop = "1:0" ){
întoarce 403;
}
Având în vedere faptul că logica de bază pentru ambele configurații este practic identică, atunci de ce prima funcționează doar pe jumătate, dar a doua funcționează bine?