Apache nur bestimmte extensions zulassen
benjamin
- webserver
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
use Mosche;
Ich habe das nach CKs Tip (s.u.) so eingebaut:
Einfaches verlinken reicht auch.
Es geht doch prinzipiell um folgendes. Du hast dir verboten, auf den Pfad '/' zuzugreifen. Also musst du es einfach erlauben.
<FilesMatch "^/$">
Allow from all
</FilesMatch>
use Tschoe qw(Matti);
Es geht doch prinzipiell um folgendes. Du hast dir verboten, auf den Pfad '/' zuzugreifen. Also musst du es einfach erlauben.
<FilesMatch "^/$">
Allow from all
</FilesMatch>ungetestet
use Tschoe qw(Matti);
mhhh... das oben enthält jetzt die negierung und ich dachte die geht nicht bei filesmatch. jetzt bin ich etwas konfus.
ich muß wahrscheinlich irgendwie die extension freigeben die beim aufruf von / aufgerufen wird.
gruß
Benjamin
hi,
<FilesMatch "^/$">
mhhh... das oben enthält jetzt die negierung und ich dachte die geht nicht bei filesmatch. jetzt bin ich etwas konfus.
nein, tut es nicht.
^ heisst stringanfang, $ heisst stringende.
ich muß wahrscheinlich irgendwie die extension freigeben die beim aufruf von / aufgerufen wird.
was bitte hat denn / deiner meinung nach für eine extension? :-)
gruss,
wahsaga
use Mosche;
<FilesMatch "^/$">
mhhh... das oben enthält jetzt die negierung und ich dachte die geht nicht bei filesmatch. jetzt bin ich etwas konfus.
Das ist keine Negierung. Negierung funktionier nur für Zeichenklassen, also zB [^h] heißt: alles, aber kein h. Der '^' heißt Stringanfang. Der ganze Ausdruck bedeutet:
Das ist genau der Pfad, auf den zugegriffen wird, wenn du auf / zugreifst (das ist wuasi Tautologie).
use Tschoe qw(Matti);