Klaus: Error 403 erzeugen

Hallo zusammen,

ich stehe vor folgendem Problem:

Ich möchte per .htaccess den direkten Zugriff auf eine einzelne Datei schützen und bei Aufruf den Error 403 senden.
Per PHP sollte ich jedoch immernoch auf diese Datei zugreifen können.

Wie stelle ich das an?

Viele Grüße
Klaus

  1. Hi Klaus,

    Ich möchte per .htaccess den direkten Zugriff auf eine einzelne Datei schützen und bei Aufruf den Error 403 senden.

    Order allow,deny  
    Deny from All
    

    Per PHP sollte ich jedoch immernoch auf diese Datei zugreifen können.

    Das ist kein Problem, da PHP über das Dateisystem auf die Dateien zugreift (vorausgesetzt, du hast nicht super umständlich und schlecht programmiert), während die Konfiguration für den Apache (über .htaccess) nur für Aufrufe der Dateien über HTTP gilt.

    Viele Grüße,
      ~ Dennis.

    1. Hallo Dennis,

      danke für die Antwort.

      Ich möchte per .htaccess den direkten Zugriff auf eine einzelne Datei schützen und bei Aufruf den Error 403 senden.

      Order allow,deny

      Deny from All

      Damit wäre allerdings das komplette Verzeichnis geschützt. Es geht mir allerdings um eine einzelne Datei. Die anderen Dateien in diesem Verzeichnis sollen weiterhin per http aufrufbar sein.  
        
      Viele Grüße  
      Klaus
      
      1. Hi Klaus,

        Damit wäre allerdings das komplette Verzeichnis geschützt. Es geht mir allerdings um eine einzelne Datei. Die anderen Dateien in diesem Verzeichnis sollen weiterhin per http aufrufbar sein.

        Was hast du bisher zur Lösung des Problems unternommen? Woran scheitert es?

        Falls du noch gar nicht versucht hast, das Problem zu lösen, so möchte ich dir das Handbuch zum Apache sehr ans Herz legen, dort findest du unter „Konfigurationsabschnitte” auch sehr schnell eine Notation, welches dir ermöglicht, Konfigurations-Direktiven nur auf bestimmte Dateien anzuwenden.

        Viele Grüße,
          ~ Dennis.

        1. Hi,

          Was hast du bisher zur Lösung des Problems unternommen? Woran scheitert es?

          Mein größtes Problem besteht darin, dass ich nicht wirklich weiß, wonach ich suchen soll.
          Und da ich mich mit .htaccess nur wenig auskenne, hab ich auch keine Lösungsansätze.

          Falls du noch gar nicht versucht hast, das Problem zu lösen, so möchte ich dir das Handbuch zum Apache sehr ans Herz legen, dort findest du unter „Konfigurationsabschnitte” auch sehr schnell eine Notation, welches dir ermöglicht, Konfigurations-Direktiven nur auf bestimmte Dateien anzuwenden.

          Danke für den Link, a werd ich mal schauen, ob ich was finde...

  2. Hallo zusammen,

    Wie stelle ich das an?

    Hat sich erledigt!

    Habe nicht gewusst, dass ich das mit einem einfachen Redirect lösen kann:

    Redirect 403 /zu_schuetzende_datei.php

    Viele Grüße
    Klaus

    1. Hi Klaus,

      Redirect 403 /zu_schuetzende_datei.php

      Das wäre die eine Möglichkeit, die andere wäre, diesen Code in einen entsprechenden Abschnitt zu setzen, wobei sich dann <Files> anböte.

      <Files mySecretFile.zip>  
        Order allow,deny  
        Deny from All  
      </Files>
      

      Viele Grüße,
        ~ Dennis.

      1. Hallo Dennis,

        <Files mySecretFile.zip>

        Order allow,deny
          Deny from All
        </Files>

          
        Funktioniert das außerhalb der httpd.conf?  
          
        Grüße  
        Klaus
        
        1. Hi Klaus,

          Funktioniert das außerhalb der httpd.conf?

          Ich habe dir nun wirklich schon alle Links aufs Apache-Manual gegeben, welche du brauchst. Der bei <Files> angegebene Kontext sagt dir, wo du <Files> überall verwenden darfst.

          Viele Grüße,
            ~ Dennis.

          1. Hallo,

            Funktioniert das außerhalb der httpd.conf?

            Ich habe dir nun wirklich schon alle Links aufs Apache-Manual gegeben, welche du brauchst. Der bei <Files> angegebene Kontext sagt dir, wo du <Files> überall verwenden darfst.

            Dafür bin ich auch dankbar.

            Die Frage war rhetorisch gemeint, da <Files> _hier_ keine alternative Lösung darstellt.

            Viele Grüße
            Klaus

            1. Hi Klaus,

              Die Frage war rhetorisch gemeint, da <Files> _hier_ keine alternative Lösung darstellt.

              Laut Apache-Manual heißt es:

              Beschreibung: Enthält Direktiven, die sich nur auf passende Dateinamen beziehen
                Syntax:       <Files Dateiname> ... </Files>
                Kontext:      Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess

              Du kannst diese Direktive also in der .htaccess (und somit außerhalb der httpd.conf) verwenden.

              Aber worauf willst du überhaupt hinaus? ;-)

              Viele Grüße,
                ~ Dennis.