Webseitenzugriff mit .htaccess verweigern!

Da ich schon seit Wochen von einem ganz fiesen Bot geplagt werde, der auch noch unnötigen viel Traffic verursacht, habe ich mich jetzt endlich dazu entschlossen, diesen Kamerad von meiner Homepage zu verbannen.

Dazu habe ich die .htaccess-Datei manipuliert, indem ich einen Code eingesetzt habe, der es mir ermöglicht hat, einzelne IPs und User-Agents zu sperren. Wie das funktioniert, möchte ich dir hier gerne erklären.

Wichtig: Das Apache Modul “mod_rewrite” muss auf deinem Webserver aktiviert sein, sonst geht das nicht.

Als Erstes benötigst du die .htaccess-Datei, die du in deinem Root-Verzeichnis auf deinem Webserver finden kannst. Du kopierst diese Datei per FTP von deinem Webserver auf deinen PC und öffnest diese nun mit einem Texteditor. Anschließend trägst du in die .htaccess-Datei den von dir gewünschten Code ein und kopierst diese wieder zurück auf den Webserver. Fertig!

Unten findest Du nun ein paar Beispiele, was man mit so einer manipulierten .htaccess-Datei alles Anstellen kann.

Einzelne IP und Domain sperren:

order deny,allow
deny from 62.178.217.28
deny from .chello.at

Hier wird der Zugriff auf den Homepage-Bereich für die IP-Adresse “62.178.217.28″ und für jeden Host, der auf “.chello.at” endet, verboten.

Alle sperren und nur bestimmten IPs den Zugriff erlauben:

order deny,allow
deny from all
allow from 89.58

In diesem Beispiel wird der Zugriff auf die Webseite nur den IP-Adressen erlaubt, die mit “89.58″ anfangen. Alles andere ist ausgesperrt!

Client (User-Agent) Sperre:

RewriteEngine on
# betaBot den Zugriff verweigern
RewriteCond %{HTTP_USER_AGENT} ^betaBot
RewriteRule /* http://www.chello.at/ [L,R]

Hier wird der “betaBot” ausgesperrt. Sollte der “betaBot” auf diese Webseite zugreifen, so wird ihm das verwehrt und er wird auf eine vorher definierte Webseite umgeleitet. Mit dem Befehl „RewriteRule /* http://www.chello.at/ [L,R]“ leitest du den betroffenen Clienten, auf eine X-beliebige Webseite um. In diesem Fall wird “betaBot” auf seine eigene Webseite umgeleitet.

Betriebssystem sperren:

RewriteEngine on
# Windows User-Agent den Zugriff verweigern
RewriteCond %{HTTP_USER_AGENT} ^Windows.*
RewriteRule ^.* – [F]

Mit dieser Client-Sperre wird der Seitenzugriff jedem User untersagt, der über einen Windows-Computer diese Homepage aufrufen möchte. Mit dem Befehl: „RewriteRule ^.* – [F]“ legst du fest, dass den ausgesperrten Besuchern eine Fehlerseite angezeigt wird, sobald diese, eine für sie gesperrte Seite aufrufen.

Verschiedene User-Agents gleichzeitig sperren:

RewriteEngine on
# Mehrere Spambots nach User-Agent aussperren
RewriteCond %{HTTP_USER_AGENT} ^.*Bot1 [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Bot2 [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Bot3 [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Bot4
RewriteRule ^.* – [F]

Hier werden mehrere User-Agents auf einmal gesperrt. Diese Liste lässt sich beliebig erweitern.


Artikel-Infobox:



9 Kommentare zu “Webseitenzugriff mit .htaccess verweigern!”

  1. Pascal sagt:

    Vielen Dank hierfür, war (fast) genau was ich gesucht habe.

    Ich habe bis auf meine eigenen IP´s alle ausgesperrt, jetzt würde ich alle ausgesperrten noch gerne per 301 auf eine andere Seite umleiten… Mal schaun ob ich das hinbekomme…
    Hast du vielleicht eine Lösung parat?

    Liebe Grüße,
    Pascal

    • Joachim sagt:

      Hi Pascal,

      ich habe leider keinen passenden Lösungsvorschlag parat. Ich verstehe auch nicht wirklich, warum du deine Hauptdomain mit einer IP-Sperre versiehst, anstatt alle Besucher grundsätzlich per 301 Redirect auf eine andere Domain weiterzuleiten. Wie man das anstellt, kannst du hier nachlesen http://joachimnadolny.de/301-redirect-suchmaschinenfreundliche-weiterleitung/

      Oder du richtest eine IP-Sperre ein (wie bereits geschehen) aber leitest die gesperrten Besucher mit dem Befehl RewriteRule ^.* – [F] auf eine interne Fehlerseite um.

      Möchtest du eventuell nur bestimmte Ordner oder Dateien sperren, dann kannst du auch einen Verzeichnisschutz einrichten. Oder du manipulierst die .htaccess-Datei dahin gehend, sodass ein Aufrufen von Dateien, Seiten oder Ordner verhindert wird.

      Beispiel:


      #TEST.php sperren
      < *files TEST.php>
      order deny,allow
      deny from all
      < */files>

      Die beiden Sternchen bitte heraus löschen!

  2. Pascal sagt:

    Naja das ist halt ein Sonderfall,
    ich möchte dort für mein Gewerbe eine Seite einrichten aber bis auf weiteres blockiert halten da ich mit einem Freund eine GbR habe. Also soll solange die GbR besteht die Seite auf die Seite der GbR umleiten sofern man nicht von einem meiner Rechner darauf surft.

    Lässt sich natürlich wie du bereits sagtest per 301 durchaus umsetzen allerdings fände ich es eleganter wenn ich ganz normal darauf zugreifen könnte.
    Ist vielleicht auch unsinnig aber so kam mir das halt in den Kopf :)

    • Joachim sagt:

      Pascal ich glaube ich habe eine Lösung für dich.

      Probiere es mal aus und füge unten stehen Code in deine .htaccess-Datei ein:

      RewriteEngine on
      RewriteCond %{REMOTE_ADDR} !=12.34.56.78
      RewriteRule ^(.*)$ http://domain.tld [R=302,NC,L]

      12.34.56.78 = Die IP-Adresse, die Zugriff haben soll
      http://domain.tld = Die Domain, auf die Weitergeleitet werden soll

      Benutze hierfür besser keine 301 Redirect, sondern lieber eine tempöräre 302-Weiterleitung.

  3. Pascal sagt:

    Funktioniert wie gewünscht!
    Vielen vielen Dank!

    • Joachim sagt:

      Es freut mich, dass ich dir weiterhelfen konnte. Auch ich habe bei der Suche nach einer Lösung wieder etwas dazu gelernt ;-)

  4. Izara sagt:

    Ich suche einen preiswerten Homepageanbieter, der mit erlaubt mittels .htaccess eine Ländersperre einzurichten. Es geht um ein kleines Land.

    Außerdem weiß ich nicht, wo man dann diesen .htaccess Code einfügt.
    Worauf muss ich also achten, wenn ich mich für einen Anbieter entscheide? Muss man dafür beim Anbieter darauf achten, dass man PHP oder SQL oder wie es sich auch immer nennt, hat?

    Es ist sehr wichtig, dass ich diese Ländersperre einrichten kann, da man mir immer wieder meine Ideen und sogar ganze Seiten kopiert. Ich lebe in einem Land, in dem dies leider zur Tagesordnung gehört, anderen der Einfachheit halber die Ideen zu klauen, vor allem auch, weil die nicht so gut deutsch können und dann einfach kopieren was man auf meiner Seite findet.
    Wir möchten unsere Texte und Design, das wir auf den Seiten haben, schützen. Da wir bisher in diesem Land …”Noch” die einzigen sind. Bereits vor einigen Jahren hatten wir uns schon erfolgreich präsentiert und dann wurde, von unseren Ideen, geklaut wie wild.

    Bitte helft mir eine Homepage zu finden, die ich vor solchen Zugriff besser schützen kann. Mit Passwort will ich nicht arbeiten. Sonst müsste jeder Kunde aus dem Ausland erst danach anfragen. Sowas schreckt Kunden ab. Wir haben nur Kunden aus Europa und wollen daher das Land in dem wir sind Sperren. Ist ein kleines Land. Ich möchte bitte nicht hier das Land nennen, da dies ja dazu nicht wichtig ist.

    Danke
    Izara

    • Joachim sagt:

      Hi Izara,

      Entschuldigung für die späte Antwort.

      Um .htaccess nutzen zu können, benötigt man lediglich einen “Apache-Webserver”. Ob in deinem Webpaket PHP oder SQL enthalten ist, spielt für htaccess keine Rolle. Die fertig erstellte htaccess gehört später in das Root-Verzeichnis deines Webservers.

      Wie du eine htaccess-Datei erstellen und abspeichern kannst, erfährst du hier:
      https://www.zdv.uni-mainz.de/3571.php

      Dieser Online-Generator hilft dir beim Erstellen des richtigen Codes:
      http://www.htaccesseditor.com/gr.shtml

      Umfangreiche Sammlung von htaccess Befehlen:
      http://www.seobasis.de/htaccess-befehle/#a3

      So könnte die IP-Sperre aussehen:

      ## IP Sperre
      order allow,deny
      deny from 11.22.33.44
      deny from 22.33.44.55
      deny from 33.44.55.66

      Du musst noch meine IPs durch deine zu sperrenden IPs ersetzen!

      Ich hoffe, ich konnte dir vielleicht etwas weiterhelfen.

  5. [...] kann zur Zeit das ganze nur via .htaccess Datei bannen: Also die Datei ».htaccess« vom Web-Rootverzeichnis runter­la­den und folgende Zeilen [...]

Schreibe uns Deine Meinung!