"Require not ip" .htaccess funktioniert nicht in einer einzelnen IP

"Require not ip" .htaccess funktioniert nicht in einer einzelnen IP

Ich habe Probleme mit dem Blockieren einer IP in .htaccess

Ich habe

Require not ip 192.168.20.218

Es funktioniert, blockiert aber das gesamte Netzwerk, anstatt eine einzelne IP zu blockieren.

Kann jemand dieses Problem lösen?

Ich verwende Apache 2.4 mit Ubuntu 14.04.3 LTS

AKTUALISIEREN:Das Szenario ist wie folgt: Ich verwende IP 192.168.20.218auf meinem Computer und versuche, diese IP-Adresse testweise zu blockieren. Ich habe Folgendes versucht:

<RequireAll> 
Require all granted 
Require not ip 192.168.20.218 
</RequireAll>

Das soll meinen Zugriff blockieren, aber stattdessen kann ich weiterhin auf die Seite zugreifen. Wenn ich es entferne, Require all grantedwird das gesamte Netzwerk blockiert.

Antwort1

Sie können keinnegiertRichtlinie selbst, um den Zugriff zu autorisieren. Wie indie Dokumentation:

Das Ergebnis der RequireDirektive kann durch die Verwendung der notOption negiert werden. Wie bei den anderen negierten Autorisierungsdirektiven gilt <RequireNone>:Wenn die RequireDirektive negiert wird, kann sie nur fehlschlagen oder ein neutrales Ergebnis zurückgeben und kann daher niemals unabhängig eine Anfrage autorisieren..

Sie müssten stattdessen etwa Folgendes tun:

<RequireAll>
Require all granted
Require not ip 192.168.20.218
</RequireAll>

Sie lassen also jeden zu und schließen eine bestimmte IP-Adresse aus.

Der <RequireAll>Container erfordert, wie sein Name schon sagt, dass alle enthaltenen Anweisungen erfüllt werden müssen.

Antwort2

Ich hatte dieses Problem. Ich vergaß, dass ich einen Nginx-Reverse-Proxy eingerichtet hatte. Die in Apache eingehende IP war die Reverse-Proxy-IP von Nginx. Stattdessen musste ich im Reverse-Proxy einen benutzerdefinierten Header mit der tatsächlichen IP festlegen und dann diesen Header in .htaccess überprüfen, anstatt die IP zu überprüfen.

verwandte Informationen