Frank Hübner: bestimmte Dateitypen mittels .htaccess umleiten

Hallo zusammen,

Ich habe ein Verzeichnis in dem z.B. nur .gif Dateien liegen. Ich möchte nun, dass wenn jemand den kompletten Pfad zum Bild angibt, soll er stattdessen eine Fehlermeldung bekommen.

Ein Zugriff über ein PHP-download-script sollte davon unberührt bleiben !?

Das ganze am liebsten in der .htaccess Datei.

Gibt es etwas in der Art wie
Redirect *.gif http://www.domain.de/fehler.html

Bis denne
Frank

  1. hi!

    Ich habe ein Verzeichnis in dem z.B. nur .gif Dateien liegen. Ich
    möchte nun, dass wenn jemand den kompletten Pfad zum Bild angibt,
    soll er stattdessen eine Fehlermeldung bekommen.

    Das geht so nicht. Denn du kannst nicht unterscheiden, ob jemand in
    seinem Browser die URL zum Bild eintippt, oder ob der Browser das
    Bild ganz normal anfordert, um es in einer Website darzustellen.

    Theoretisch übermittelt der Browser zwar einen Referrer, wenn er das
    Bild anfordert, weil er es in einer Webseite anzeigen soll, aber
    praktisch kannst du davon nicht ausgehen, da viele Leute die
    Übermittlung des Referrers abgeschaltet haben oder der Browser damit
    generell Probleme hat.

    Ein Zugriff über ein PHP-download-script sollte davon unberührt
    bleiben !?

    Wenn du die Bilder nur zum Download anbieten willst, dann leg sie
    doch in einem Verzeichnis ab, das außerhalb der Verzeichnisse liegt,
    die über den HTTP-Server erreichbar sind. Dann kannst du mit dem
    PHP-Skript die Datei öffnen, auslesen und selbst an den Browser
    schicken.

    bye, Frank!

    1. hi!

      Ich habe ein Verzeichnis in dem z.B. nur .gif Dateien liegen. Ich
      möchte nun, dass wenn jemand den kompletten Pfad zum Bild angibt,
      soll er stattdessen eine Fehlermeldung bekommen.

      Das geht so nicht. Denn du kannst nicht unterscheiden, ob jemand in
      seinem Browser die URL zum Bild eintippt, oder ob der Browser das
      Bild ganz normal anfordert, um es in einer Website darzustellen.

      Das war von MIR! dumm formuliert. Natürlich kann er das nicht entscheiden, kann .htaccess aber erkennen, das ein *.gif angefordert wurde und dann umleiten.

      dann leg sie
      doch in einem Verzeichnis ab, das außerhalb der >Verzeichnisse liegt,
      die über den HTTP-Server erreichbar sind.

      Tja, dumm nur wenn man extrem eingeschränkte Zugriffsrechte hat. Ich hab nur Schreibrechte innerhalb des Document-Root.

      Frank

      1. hi!

        dann leg sie doch in einem Verzeichnis ab, das außerhalb der
        Verzeichnisse liegt, die über den HTTP-Server erreichbar sind.
        Tja, dumm nur wenn man extrem eingeschränkte Zugriffsrechte hat. Ich
        hab nur Schreibrechte innerhalb des Document-Root.

        Hm. Also ich habe noch nicht ganz verstanden, was du eigentlich genau
        machen willst... ;)

        Um einfach nur die GIF-Dateien zu schützen, die irgendwo in deinem
        DocumentRoot liegen, gibt es allerdings Möglichkeiten: eine davon
        wäre, per .htaccess einfach den gesamten Zugriff über den Webserver
        auf dieses Verzeichnis zu verbieten. Das müsste einfach gehen, wenn
        du in das Verzeichnis mit den GIF-Dateien eine .htaccess-Datei legst,
        in der nur sowas steht wie:

        Order allow,deny
          Deny from all

        Wenn du Anfragen umleiten willst, solltest du dir mal das Apache-
        Modul mod_rewrite anschauen, das kann sowas. Aber die Frage ist, ob
        du das verwenden darfst. Würde dann in der .htaccess etwa folgender-
        maßen aussehen:

        RewriteEngine on
          RewriteRule ^/path/to/gifs/(.*.gif)$  download.php?file=$1

        Ich hoffe, das entspricht etwa deinen Vorstellungen?

        bye, Frank!

        1. Hi Frank,

          Order allow,deny
            Deny from all

          genau das hätte ich auch vorgeschlagen.

          Wenn du Anfragen umleiten willst,

          ... weil sie gegen diesen Zugriffsschutz verstoßen, dann müßte doch
          ein für dieses Verzeichnis definiertes ErrorDocument für Status 403
          genau das Erwünschte tun, oder?

          Viele Grüße
                Michael

          1. hi!

            Wenn du Anfragen umleiten willst,
            ... weil sie gegen diesen Zugriffsschutz verstoßen, dann müßte doch
            ein für dieses Verzeichnis definiertes ErrorDocument für Status 403
            genau das Erwünschte tun, oder?

            Hm, ich dachte, er möchte die Bilder zum Download anbieten. Daher
            würde sich mod_rewrite anbieten, denn dann kann er den Namen des
            entsprechenden Bildes als Parameter an das Download-Skript anhängen.
            Mit einem ErrorDocument für einen Status 403 könnte er ja nur auf
            die immer gleiche Seite umleiten.

            bye, Frank!

            1. Hi Frank,

              Mit einem ErrorDocument für einen Status 403 könnte er ja nur auf
              die immer gleiche Seite umleiten.

              ... die ein CGI-Skript sein kann und über das Environment erfährt, auf
              welche Seite der Originalzugriff erfolgt ist.

              Also ist alles da, was man braucht, um glücklich zu sein:
                   http://httpd.apache.org/docs/custom-error.html

              Viele Grüße
                    Michael