.png)
Ich habe eine WordPress-Website, die auf Nginx hinter Cloudflare DNS läuft. Ich habe „set_real_ip_from“ für alle Cloudflare-IPs in nginx.conf verwendet. Wenn ich versuche, auf meine Website zuzugreifen, kann ich meine echte IP in den Protokollen sehen. Ich habe das Standard-Anmeldeverzeichnis für WordPress-Administratoren von wp-admin in meinen Verzeichnisnamen geändert. Ich möchte, dass sich nur bestimmte IPs bei meinem WordPress anmelden dürfen, aber mit dieser Serverblockierung in der Konfiguration meiner Website location ~ /(wp-admin|wp-login|mydirectory) { allow my.real.ip; deny all; return 404; }
kann ich anscheinend nicht auf den WordPress-Administrator zugreifen und bekomme eine 404-Fehlermeldung. Wenn ich diese Blockierung lösche, funktioniert alles einwandfrei. Ich schätze also, dass ich etwas falsch eingetippt habe. Ich habe mir in diesem Forum verschiedene Varianten angesehen, aber keine davon scheint zu funktionieren. Entweder gestatten sie mir den Zugriff auf wp-admin, aber dann kann jeder darauf zugreifen, oder es werden alle blockiert.
BEARBEITEN Leider konnte ich es nicht zum Laufen bringen, egal was ich versuchte, also löschte ich den Block location ~ /(wp-admin|wp-login|mydirectory), lud die Nginx-Konfiguration neu, meldete mich bei WordPress an, deaktivierte das Plugin „wp-admin change directory“, ging dann zurück und fügte den Block location ~ /(wp-admin|wp-login|mydirectory) erneut hinzu. Darin fügte ich location ~ .php$ { hinzu, wie @Michael Hampton vorgeschlagen hatte, und jetzt kann ich über die URL „wp-admin“ auf meine WordPress-Administratorseite zugreifen. Ich weiß nicht, warum es mit der benutzerdefinierten URL nicht funktioniert hat, aber ich denke, das wird funktionieren, da Nginx jeden anderen blockiert, der versucht, darauf zuzugreifen. Es wäre jedoch interessant gewesen zu wissen, warum es nicht funktioniert hat :/
Antwort1
Sie erhalten eine 404-Fehlermeldung, da Sie ausdrücklich eine 404-Fehlermeldung für alle entsprechenden Anfragen angefordert haben location
.
return 404;
Sie müssen diese Anweisung entfernen, wenn Sie etwas anderes als eine 404-Meldung erhalten möchten.
Darüber hinaus müssen Sie location
darin ein verschachteltes Element platzieren location
, um PHP-Dateien verarbeiten zu können.
location ~ /(wp-admin|wp-login|mydirectory) {
...
location ~ .php$ {
....