Ich versuche, alle zu verweigern und nur eine einzige IP zuzulassen. Ich möchte jedoch, dass der folgende Zugriff für diese einzelne IP funktioniert. Ich finde keinen Weg, beide zum Laufen zu bringen: Alle ablehnen und nur eine zulassen, plus die folgenden Optionen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
Gibt es eine Möglichkeit, diese Arbeit zu machen?
allow from yourIPv6
Ich weiß, dass diese Frage bereits eine akzeptierte Antwort hat, aber die Apache-Dokumentation sagt:
Eine zukunftssicherere Antwort wäre also:
Hoffentlich habe ich dazu beigetragen, dass diese Seite nicht zu einem dieser "veralteten Tutorials" wird. :) :)
quelle
Require ip
mehrere Zeilen einfügen, um die Lesbarkeit zu verbessern, oder müssen sich alle IP-Adressen in einer Zeile befinden?Dies kann durch Verwendung der für diese Aufgabe entwickelten Richtlinie verbessert werden.
Dabei ist 111.222.333.444 Ihre statische IP-Adresse.
Bei Verwendung der Direktive "Order Allow, Deny" müssen die Anforderungen entweder mit Allow oder Deny übereinstimmen. Wenn keine der beiden Anforderungen erfüllt ist, wird die Anforderung abgelehnt.
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
quelle
Leicht modifizierte Version des oben genannten, einschließlich einer benutzerdefinierten Seite, die denjenigen angezeigt werden soll, denen der Zugriff verweigert wird:
... und auf diese Weise wird für Anfragen, die nicht von 111.222.333.444 stammen, die Datei "large_page.html" angezeigt
(Dies als Kommentar zu posten sah schrecklich aus, weil neue Zeilen verloren gehen)
quelle
test.html
und befindet sich im selben Ordner wie die.htaccess
. Ich kann die Protokolle jedoch nicht sehen (vom Server nicht zulässig). Haben Sie eine Idee, warum ich dieses Problem haben könnte? Wenn ich den Pfad der Datei über einen FTP-Client erhalte, wird mir mitgeteilt,/test.html
dass der Pfad kein Problem darstellen sollte, oder?Wenn Sie die vorherigen Antworten etwas weiter verbessern, kann Ihren Benutzern eine Wartungsseite angezeigt werden, während Sie Änderungen an der Site vornehmen:
Wo:
#.#.#.#
ist Ihre IP: Wie lautet meine IP-Adresse?maintenance.html
gibt es ein schönes Beispiel: Einfache Wartungsseitequelle
Nur zusätzlich zu @David Browns Antwort müssen Sie, wenn Sie eine IP blockieren möchten, zuerst alle zulassen und dann die IPs als solche blockieren:
Sie können eine der oben genannten Notationen verwenden, um Ihren CIDR-Anforderungen gerecht zu werden.
quelle
In htaccess können Sie Folgendes verwenden, um den Zugriff auf Ihre Site zuzulassen und zu verweigern:
Wir setzen zuerst eine env-Variable allowip, wenn die Client-IP-Adresse mit dem Muster übereinstimmt. Wenn das Muster übereinstimmt, wird der env-Variablen allowip der Wert 1 zugewiesen .
Im nächsten Schritt verwenden wir die Anweisungen Zulassen, Verweigern, um den Zugriff auf die Site zuzulassen und zu verweigern.
Order deny,allow
repräsentiert die Reihenfolge vondeny
undallow
.deny from all
Diese Zeile weist den Server an, alle zu verweigern. Die letzte Zeileallow from env=allowedip
ermöglicht den Zugriff auf eine einzelne IP-Adresse, für die wir die env-Variable festgelegt haben.Ersetzen Sie
1\.2\.3\.4\.5
durch Ihre erlaubte IP-Adresse.Refrences:
https://httpd.apache.org/docs/2.4/mod/mod_setenvif.html
https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html
quelle
Ich konnte die 403-Methode nicht verwenden, da ich die Wartungsseite und die Seitenbilder in einem Unterordner auf meinem Server haben wollte. Daher wurde der folgende Ansatz verwendet, um für alle außer einer einzelnen IP * zu einer "Wartungsseite" umzuleiten.
Quelle: Erstellen einer Halteseite, um Ihr WordPress-Blog auszublenden
quelle
Sie können mehr als eine IP oder sogar eine andere Art von Erlaubnis haben, wie Benutzer, Hostname, ... weitere Informationen hier https://www.askapache.com/htaccess/setenvif/
quelle
Wenn Sie mod_rewrite für die Zugriffssteuerung verwenden möchten, können Sie Bedingungen wie Benutzeragent, http-Verweis, Remote-Adresse usw. verwenden.
Beispiel
Refrences:
quelle
Fügen Sie den folgenden Befehl in die .htaccess-Datei ein. Und legen Sie diese Datei in Ihrem htdocs-Ordner ab.
quelle
Für mich scheint dies zu funktionieren (IPv6 anstelle von IPv4 verwenden). Ich weiß nicht, ob dies für einige Websites anders ist, aber für meine funktioniert dies.
quelle