Ich habe eine URL http://example.com/web/en/press-release/
. Wie kann ich allen Benutzern den Zugriff, die Anzeige und http://localhost:10004/web/en/press-release/*
Verwendung dieser Seite verweigern .htaccess
?
Ich möchte, dass sie nur von bestimmten IPs aus zugänglich sind.
Das hat mir gefallen, aber es hat nicht funktioniert.
# Press Release Blocked Now
RewriteCond %{HTTP_REFERER} web/en/press-release/ [NC,OR]
RewriteRule .* - [F]
Antwort1
Wenn dumussverwenden.htaccess
DateienSie sollten ihre Grenzen kennen:
.htaccess
Dateien (oder „verteilte Konfigurationsdateien“) bieten eine Möglichkeit, Konfigurationsänderungen auf Verzeichnisbasis vorzunehmen. Eine Datei, die eine oder mehrere Konfigurationsanweisungen enthält, wird in einem bestimmten Dokumentverzeichnis abgelegt, und die Anweisungen gelten für dieses Verzeichnis und alle Unterverzeichnisse davon.
Das bedeutet, Sie steuern die Einstellungen aufDateisystemcontainerstattWebspace-Container, und die Konfiguration gilt standardmäßig für alle Unterverzeichnisse. Um Ihr Ziel zu erreichen, müssen Sie die .htaccess
Datei daher in dem Dateisystempfad ablegen, der dem URL-Pfad entspricht /web/en/press-release/
.
Wenn sich /web/en/press-release/
sowohl auf localhost:10004
als auch example.com
auf das gleiche Verzeichnis bezieht und beide direkt aus dem Dateisystem mit Apache bedient werden (d. h. es handelt sich nicht um einReverseproxy), ist der Dateisystemkontext eine gute Wahl. VonKonfigurationsabschnitte: Was ist wann zu verwenden?:
Die Wahl zwischen Dateisystemcontainern und Webspace-Containern ist eigentlich ganz einfach. Wenn Sie Anweisungen auf Objekte anwenden, die sich im Dateisystem befinden, verwenden Sie immer
<Directory>
oder<Files>
. Wenn Sie Anweisungen auf Objekte anwenden, die sich nicht im Dateisystem befinden (wie etwa eine aus einer Datenbank generierte Webseite), verwenden Sie<Location>
.Es ist wichtig, dass Sie es niemals verwenden,
<Location>
wenn Sie versuchen, den Zugriff auf Objekte im Dateisystem einzuschränken. Dies liegt daran, dass viele verschiedene Webspace-Standorte (URLs) auf denselben Dateisystemstandort verweisen könnten, wodurch Ihre Einschränkungen umgangen werden könnten.
AnstattVerwenden von mod_rewrite zur Zugriffskontrolle, Apache hat direkteZugangskontrolleAnweisungen. Ihre Verwendung ist einfacher und macht Ihre Konfiguration einfacher zu lesen und zu verwalten. DieRequire
Richtlinieausmod_authz_corehat ip
:
Require ip 192.0.2.100
Require ip 198.51.100.0/24
Require ip 2001:DB8:C0F:FEE::/64