Puncte:0

încercând să redirecționeze în .htaccess, cu excepția cazului în care este un administrator

drapel us

Încerc să scriu o regulă în .htaccess care redirecționează toate /wp-admin la /Autentificare DACĂ CÂND UN anumit utilizator (WebAdministrator) se conectează. Cum fac o astfel de regulă?

Daca folosesc:

Rescrierea ^wp-admin /login [R=301,NC,L]

apoi o rupe pentru că va continua să redirecționeze către /Autentificare, chiar și pentru administrator, deoarece atunci când administratorul se conectează, ar trebui să vadă panoul la /wp-admin

drapel in
Cum ar trebui să știe Apache cine este utilizatorul?
Jed Booth avatar
drapel us
Nu se poate. Rulez Apache pe server și m-am gândit că, dacă etichetez Apache, ar lărgi audiența, iar majoritatea oamenilor care sunt administratori adevărați care rulează Apache ar vedea acest lucru și le-ar fi ușor.
drapel in
Dacă Apache nu poate face distincția între utilizatori, cum ar trebui să știe când să redirecționeze și când nu?
Puncte:1
drapel jp

Ai o problemă cu puiul și ouăle. Nu știi dacă un utilizator este administrator până nu este autentificat, așa că nu ai informațiile pentru a face redirecționare condiționată înainte de a te autentifica.

Jed Booth avatar
drapel us
Iubesc analogia. haha multumesc.
Puncte:1
drapel cn

Există câteva moduri de a face acest lucru în apache, dar niciuna nu este grozavă.

Cel mai bun mod este să faceți acest lucru în wordpress, fie construind un plugin wordpress mic pentru a schimba tot wp-login.php (locația paginii de autentificare) la /login-ul dvs. personalizat folosind cârligul relevant: https://developer.wordpress.org/reference/hooks/login_url/

Singurele modalități prin care o rescriere apache ar putea ști dacă cineva este autentificat ar fi să întrebe wordpress sau să citească cookie-ul direct.

Pentru primul, veți dori un script personalizat care rulează din modulul de rescriere folosind modul PRG al lui RewriteMap (https://httpd.apache.org/docs/current/rewrite/rewritemap.html#prg) pentru a rula un script PHP care interoghează sistemul de autentificare wordpress pentru a vedea dacă sunt autentificați și rescrie în mod corespunzător.

De asemenea, puteți verifica în mod direct valoarea cookie-ului folosind un RewriteCond bazat pe variabila HTTP_COOKIE (vezi https://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#RewriteCond)

Cu toate acestea, ambele sunt hack-uri extrem de fragile și aș recomanda cu căldură să o faceți în WP.

drapel kz
„verificați direct valoarea cookie-ului” - deși nu veți putea _valida_ cookie-ul decât dacă ați folosit un „script personalizat” așa cum sa menționat anterior. Și acest lucru nu rezolvă problema „pui și ou”... cum se autentifică în primul rând „Admin” dacă adresa URL folosită pentru autentificare este redirecționată?
drapel cn
Deoarece adresa URL folosită pentru a vă conecta la o instalare wordpress este /wp-login.php, mai degrabă decât /wp-admin. Deși, deoarece întrebarea menționează redirecționarea către /login, presupun că lipsește o piesă undeva.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.