Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Ordnerzugriff verhindern

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
webpilot
PostRank 6
PostRank 6
Beiträge: 417
Registriert: 24.03.2007, 17:03

Beitrag von webpilot » 18.02.2009, 20:13

Ich möchte den Zugriff auf mehrere Ordner (abc, 123 und xyz) per htaccess verhindern. Dazu habe ich folgenden Code in der htaccess:

Code: Alles auswählen

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/abc
RewriteCond %{REQUEST_URI} ^/123
RewriteCond %{REQUEST_URI} ^/xyz
RewriteRule ^.* - [F]
Das funktioniert irgendwie nicht.

Weiterhin habe ich folgendes versucht:

Code: Alles auswählen

<FilesMatch "&#40;/abc|/123|/xyz&#41;">
	deny from all
</FilesMatch>
Das geht so natürlich auch nicht. Ich kenne mich damit zu wenig aus. Kann wer helfen?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 18.02.2009, 21:42

webpilot hat geschrieben:Ich möchte den Zugriff auf mehrere Ordner (abc, 123 und xyz) per htaccess verhindern. Dazu habe ich folgenden Code in der htaccess:

Code: Alles auswählen

RewriteEngine On
RewriteBase /

RewriteCond %&#123;REQUEST_URI&#125; ^/abc
RewriteCond %&#123;REQUEST_URI&#125; ^/123
RewriteCond %&#123;REQUEST_URI&#125; ^/xyz
RewriteRule ^.* - &#91;F&#93;
Das funktioniert irgendwie nicht.
Das ist vor allen Dingen gleich mehrfach ungeschickt:
- Erstens könnte es dir passieren, dass du mit einem Muster à la /abc nicht nur das Verzeichnis /abc/ erwürgst, sondern auch noch /abcde, /abc123 usw. Soll ein Verzeichnis angesprochen werden, den Pfad bzw. das Muster immer mit einem Schrägstrich enden lassen.
- Zweitens kann REQUEST_URI nicht gleichzeitig /abc, /123 und /xyz sein, daher funktioniert es auch nicht. Du müsstest die RewriteCond-Zeilen mit Oder verknüpfen.
- Drittens ist es zu viel Aufwand, für jeden einzelnen Pfad ein gesondertes Muster zu definieren. In Mustern lässt sich mit | ebenfalls eine Oder-Verknüpfung herstellen, bei FilesMatch hast du das doch auch gemacht.
- Viertens ist es unsinnig, wegen eines einfachen URI-Vergleiches REQUEST_URI hervorzukramen, RewriteRule vergleicht diesen Pfad ebenfalls.
- Fünftens ist es unsinnig, „Anfang, gefolgt von irgendwas“ (^.*) als Muster zu nehmen. „Irgendwas“ reicht vollkommen.

Bis hierhin RewriteRule ^(abc|123|xyz)/ - [F] (ohne jegliche RewriteCond), jedoch:

- Sechstens ist mod_rewrite zu viel Aufwand.
Weiterhin habe ich folgendes versucht:

Code: Alles auswählen

<FilesMatch "&#40;/abc|/123|/xyz&#41;">
	deny from all
</FilesMatch>
FilesMatch arbeitet offenbar nur mit Dateien, definitiv aber nur mit dem Basisnamen des Pfades, d.h. ein führender Schrägstrich hat darin nichts zu suchen. Wenn überhaupt, dann etwas in der Richtung ^(abc|123|xyz)$, eventuell mit abschließendem Schrägstrich vor dem Dollarzeichen - aber wie gesagt, mit Verzeichnissen scheint <Files> bzw. <FilesMatch> eh nicht zu funktionieren (daher wohl sinnigerweise auch der Name).

Bessere Lösungsansätze:
1. RedirectMatch 403 ^/(abc|123|xyz)/
2. In jedem betreffenden Ordner eine .htaccess mit der Zeile deny from all ablegen.
Zuletzt geändert von Mork vom Ork am 18.02.2009, 21:50, insgesamt 2-mal geändert.

webpilot
PostRank 6
PostRank 6
Beiträge: 417
Registriert: 24.03.2007, 17:03

Beitrag von webpilot » 18.02.2009, 21:49

Das nenne ich mal eine detailierte Antwort! :) Echt super - Besten Dank!

Die Lösung mit RedirectMatch gefällt mir besser, weil, wie du auch bereits angesprochen hast, kein modrewrite notwendig ist. Leider kann ich keine Datei in den Ordner packen, da diese immer serverseitig überschrieben werden (glaube ich zumindest).

RedirectMatch ist auch eine Traumlösung weil ich sogar einen 404 ausgeben kann. ;)

Viele Dank nochmals! 0X

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag