benjamin: Apache nur bestimmte extensions zulassen

Beitrag lesen

Hallo!

Ich habe das nach CKs Tip (s.u.) so eingebaut:
<FilesMatch "*">
        Order Deny,Allow
        Deny From All
</FilesMatch>

#       first the pictures
<FilesMatch ".(bmp|pcx|gif|jp?g|png)$">
        Allow from all
</FilesMatch>

#       next the pages
<FilesMatch ".(htm|jsp|html|js|css)$">
        Allow from all
</FilesMatch>

Nur hab ich jetzt das Problem daß ich nicht mehr direkt auf mein Root Directory komme. Bei www.blabla.com kommt access denied und www.blabla.com/index.html geht.
Kann ich jetzt irgendwie root zulassen (hebelt wahrscheinlich alles wieder aus) oder kann ich beim Zugriff auf / den User auf index.jsp umleiten, damit er gar nicht in das Access Denied Problem läuft?

Danke & Gruß
Benjamin

Die folgende Nachricht zum Thema stammt von: Christian Kruse,  ckruse@wwwtech.de, 29. März 2004, 21:43 Uhr
http://cforum.defunced.de/blogg/

Hallo wahsaga,

Ich denke mir daß müßte mit <Location> oder <Files> funktionieren.

FilesMatch wäre m.E. vorzuziehen,

Es gibt keinen Unterschied zwischen <Files ~ "expr"> und <FilesMatch "expr">.

Ich verstehe aber noch nicht wie ich daß ganze negieren kann, d.h. weise alle
Zugriffe ab, welche nicht die genannte Erweiterung haben.

negieren von regex-pattern generell über ein vorangestelltes ^

Nee. Man kann *Zeichenklassen* so negieren ([^a] heisst: alles ausser 'a'). Ansonsten heisst
das Dach 'Anfang des Strings' bzw. 'Anfang der Zeile' im Multiline-Modus.

<FilesMatch ".(gif|jpe?g|png)$">

negiert: <FilesMatch ".^(gif|jpe?g|png)$">

Nein. Es gibt im Apachen keine Möglichkeit, den RegEx für <FilesMatch> bzw. <Files ~> zu
negieren. Es wird allerdings gerade darüber diskutiert, diese Möglichkeit mit aufzunehmen.
Man könnte das Verhalten allerdings über zwei <Files>-Anweisungen erreichen:

<Files "*">
 Order Deny,Allow
 Deny From All
</Files>

<Files ~ ".(gif|jpe?g|png|html?)$">
  Order Allow,Deny
  Allow From All
</Files>

So oder so ähnlich müsste das funktionieren.

Grüße,
 CK