Ankündigung

Einklappen
Keine Ankündigung bisher.

.htaccess Unterordner freigeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • .htaccess Unterordner freigeben

    Hallo zusammen,
    nachdem ich bereits eine Weile auf der Suche bin und folgender Beitrag keine Lösung brachte, http://www.php.de/php-tipps-2006/373...em-ordner.html

    hoffe ich jetzt auf Eure Hilfe.

    Ich habe folgende Ordnerstruktur

    /test/thumbs/xy.jpg
    /test2/thumbs/xz.jpg

    Im Wurzelverzeichnis liegt folgende .htaccess Datei:

    Code:
    AuthUserFile /.htpasswd
    AuthName "Blabla"
    AuthType Basic
    
    require valid-user
    order deny,allow
    deny from all
    allow from yy.yy.yy.yy
    allow from xx.xx.xx.xx
    Satisfy Any
    Das funktioniert soweit auch problemlos wenn ich den Zugriff auf alle Unterordner sperren will.
    Ich möchte nun aber jeweils den Ordner "thumbs" freigeben, und dass ohne jedesmal eine eigene .htaccess hineinkopieren zu müssen.

    Der Versuch:
    Code:
    <FilesMatch "^\thumbs\" >
    Satisfy any
    </FilesMatch>
    oder

    Code:
    <FilesMatch "^\thumbs\.jpg$" >
    Satisfy any
    </FilesMatch>
    ans Ende der Datei einzufügen brachte leider keinen Erfolg. Ich bin mir sicher dass es nur ein kleiner Denkfehler ist und wäre über jede Hilfe dankbar.

    Das ganze ist ein Fotoalbum, bei dem die Vorschaubilder von allen angeschaut werden dürfen, die Bilder in kompletter Auflösung dann aber nur von den registrierten Nutzern. Da die Verwaltung der einzelnen Alben/Unterordner aber nicht von mir gemacht wird, sollte die .htaccess dementsprechend flexibel sein.

    Vielen Dank schon mal
    Gruß Shane

  • #2
    Du hast Satisfy any missverstanden. Das bedeutet nur, das entweder das "require valid-user" oder eine der IP-basierten Regeln zum tragen kommen soll.

    Du müsstest eine entsprechende Allow-Direktive in Deine FilesMatch-Tags schreiben.

    Gruß Jens

    Kommentar


    • #3
      Um alle Dateien in den Ordnern thumbs zu erfassen sollte es nach meinem Empfinden so aussehen:
      Code:
      <FilesMatch "thumbs/.*">

      Kommentar


      • #4
        Super, vielen Dank für die schnellen Antworten. Ich werde das morgen gleich mal testen.
        Ist mit der Allow-direktive etwas in der Form:

        Code:
        <FilesMatch "thumbs/.*">
        order deny,allow
        allow from all
        </FilesMatch>
        gemeint?

        Sorry falls die Fragen etwas unbeholfen rüberkommen, bin da aber irgendwie schneller reingestolpert als mit lieb war.

        Vielen Dank für Eure Hilfe!

        Kommentar


        • #5
          Ja. Solche .htaccess probiert man am besten erstmal auf einem localen System (XAMPP).

          Kommentar


          • #6
            Die Order braucht es da nicht noch mal. Allow sollte langen.

            Ich würde den Regex beim FilesMatch allerdings so eng wie möglich stricken, sprich wenn nur jpegs aus thumbs erlaubt sein sollen, dann ^/thumbs/(.*)\.je?pg$

            Gruß Jens

            Kommentar


            • #7
              @jens: ^ am Anfang bei /test/thumbs/xy.jpg ?

              Kommentar


              • #8
                Ups - da fehlte die Hälfte. Du hast Recht, jspit. Eigentlich hätte das ^/path/2/wwwroot/test([0-9]*)/thumbs/(.*)\.je?pg$ werden müssen.

                Worauf ich hinaus wollte - und zwar unabhängig vom konkreten Regex - ist, dass der reguläre Ausdruck so gezielt wie irgend möglich formuliert werden sollte, wenn es um einen Override von Sicherheitsmechanismen geht. Ansonsten besteht schnell die Gefahr, dass man aus Versehen zu viel frei gibt.

                Gruß Jens

                Kommentar


                • #9
                  Zitat von jspit Beitrag anzeigen
                  Um alle Dateien in den Ordnern thumbs zu erfassen sollte es nach meinem Empfinden so aussehen:
                  Code:
                  <FilesMatch "thumbs/.*">
                  muß mich korrigieren, funktioniert so nicht. FilesMatch bekommt nur den Dateinamen.ext zu sehen, ohne den Pfad.

                  Kommentar


                  • #10
                    @Jspit: Haste das ausprobiert? Irgendwie hab ich das anders in Erinnerung - wobei ich dafür meine Hand nicht ins Feuer legen würde.

                    In dem Fall müsste man das ganze mit DirectoryMatch kombinieren.

                    Gruß Jens

                    Kommentar


                    • #11
                      Ja, hab auch ein wenig probiert. Die Erleuchtung kam, als ich nochmal über das ^ nachgedacht habe:
                      Code:
                      <FilesMatch "^t1\.txt$">
                      erfasst nur t1.txt, aber nicht xt1.txt usw. in allen Ordnern. DirectoryMatch ist in der .htaccess nicht verfügbar (Directory not allowed here im Serverlog), da muß man an die httpd.conf ran.

                      Kommentar


                      • #12
                        Alternative B wäre SetEnvIf.

                        Code:
                        SetEnvIf Request_URI "Regex von oben" let-me-through
                        Allow from env=let-me-through
                        Das sollte auch in einer .htaccess gehen.

                        Gruß Jens

                        Kommentar


                        • #13
                          Das funktioniert auch in einer .htaccess. Damit dürfte der TE auch sein Problem lösen.
                          Hinweis:
                          Da die Regex nicht case insensitive sind und die URI und nicht die Dateinamen getestet werden, muß man aufpassen daß man durch eine andere Schreibweise nicht ausgetrixt wird.

                          Hier noch ein link mit Beispielen für SetEnvIf

                          Kommentar


                          • #14
                            Wow, super wie sehr sich alle für mein Problem einsetzen!
                            Bin jetzt leider nur etwas verwirrt

                            Hab ich das richtig verstanden dass mein Problem weder mit FilesMatch noch mit DirectoryMatch gelöst werden kann?

                            SetEnvIf hab ich noch wie was damit gemacht...
                            Ich werde mal etwas rumprobieren ob ich weiterkomm - wenn natürlich jemand das ganze auf meine Problemstellung anpassen könnte wäre ich natürlich auch nicht abgeneigt

                            Gute Nacht, und erneut vielen Dank an alle!

                            Kommentar


                            • #15
                              Zitat von shane54 Beitrag anzeigen
                              Hab ich das richtig verstanden dass mein Problem weder mit FilesMatch noch mit DirectoryMatch gelöst werden kann?
                              Ja, nicht in der .htaccess. War bis ich es probiert hatte auch der Meinung mit FilesMatch würde es gehen. In der httpd.conf kannst du DirectoryMatch einsetzen, ich für meinen Teil fummle nur ungerne in conf-Dateien rum. Geht man auf ein anderes System und kommt denn da nicht ran bzw. es beißt sich mit anderen Projekten dann steht man dumm da.

                              Kommentar

                              Lädt...
                              X