birdyburns: Apche / .htacess

Hallo @ all,

ich hab folgendes Problem:

Auf meinem Server ist folgende Verzeichnisstruktur gegeben

/verzeichnis1/verzeichnis2/...

Die Struktur ist über eine .htacess geschützt, die in verzeichnis1 liegt.

Inhalt der .htacess
RewriteEngine On
RewriteBase /verzeichnis1

RewriteCond %{REMOTE_HOST} !^(IP des Servers auf der die Datei auth.php liegt)
RewriteRule   ^([^./]+)/([^./]+)?.$   auth.php?anzahlLinks=2&level_1=$1&level_2=$2

Die Datei auth.php liegt im Verzeichnis verzeichnis1. Nun meine Frage:

Wenn ich eine Datei in Verzeichnis2 über http aufrufe erfolgt die Weiterleitung auf die auth.php. Hier wird per Datenbank überprüft, ob diese Datei ausgeliefert werden darf oder nicht. Alle Dateien sind .html. Wenn die Datei per http ausgeliefert werden soll, dann leite ich per Header in auth.php weiter. Ein include() der Datei per php geht nicht.

Leider funktioniert das ganze nicht. .htacess fängt mich immer wieder ab. Gibt es hierfür eine Möglichkeit? Und wenn, wie sicher ist diese Möglichkeit? Sind andere Lösungen hierfür denkbar? Wichtig ist, dass der Apache die auth übernimmt, ohne das der User einen Dialog bekommt in dem er Benutzername und Passwort eingeben muss.

Thx a lot.

Birdy

  1. Hi,

    Inhalt der .htacess
    Leider funktioniert das ganze nicht. .htacess fängt mich immer wieder ab.

    Mit dem Subject dazu hast Du dreimal .htacess geschrieben.
    Heißt Deine Datei auch so?

    Dann müßtest Du in der httpd.conf noch angeben, daß Du nicht den default-Namen (.htaccess mit 2 c) benutzt, sondern einen anderen Wert (.htacess mit nur einem c)

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Mit dem Subject dazu hast Du dreimal .htacess geschrieben.
      Heißt Deine Datei auch so?

      Dann müßtest Du in der httpd.conf noch angeben, daß Du nicht den default-Namen (.htaccess mit 2 c) benutzt, sondern einen anderen Wert (.htacess mit nur einem c)

      cu,
      Andreas

      Meine Tatstatur hat ein komisches Eigenleben entwickelt. Sehe auch gerade, dass sich beim Titel ein Fehler eingeschlichen hat ^^

      Die Datei auf dem Server heisst .htaccess und verrichtet den Dienst auch soweit, wie sie es soll. D.h. die Weiterleitung auf auth.php funktioniert, auch der Header Aufruf wird ausgeführt, nur danach lande ich wieder auf den auth.php.

  2. Hi,

    Wenn ich eine Datei in Verzeichnis2 über http aufrufe erfolgt die Weiterleitung auf die auth.php. Hier wird per Datenbank überprüft, ob diese Datei ausgeliefert werden darf oder nicht. Alle Dateien sind .html. Wenn die Datei per http ausgeliefert werden soll, dann leite ich per Header in auth.php weiter. Ein include() der Datei per php geht nicht.

    Leider funktioniert das ganze nicht. .htacess fängt mich immer wieder ab.

    Natürlich, wieso hast du denn was anderes erwartet?

    Du leitest eine Anfrage nach Ressource X auf ein Script um, das irgendetwas prüft - und danach dem Client mitteilt, er sollte bitte wieder Ressource X anfragen.

    Wichtig ist, dass der Apache die auth übernimmt, ohne das der User einen Dialog bekommt in dem er Benutzername und Passwort eingeben muss.

    Dann willst du gar kein HTTP Auth nutzen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hi,

      Natürlich, wieso hast du denn was anderes erwartet?

      naiv gesprochen, ja.

      Die Idee war folgende

      if(http Aufruf von fremden Server)
      {
          .htaccess
          Überprüfung ob berechtigt
          if(berechtigt)
          {
             http aufruf vom Server wo auth.php liegt
             .htaccess lässt diesen Aufruf durch

      }

      }else if(http Aufruf vom auth.php Server )
      {
          direkte Weiterleitung auf die URL

      }

      Du leitest eine Anfrage nach Ressource X auf ein Script um, das irgendetwas prüft - und danach dem Client mitteilt, er sollte bitte wieder Ressource X anfragen.

      Wichtig ist, dass der Apache die auth übernimmt, ohne das der User einen Dialog bekommt in dem er Benutzername und Passwort eingeben muss.

      Dann willst du gar kein HTTP Auth nutzen.

      Wenn es die Möglichkeit gibt, intern im Apache zu überprüfen, ob die URL unter bestimmten Restriktionen ausgeliefert werden kann, würde ich diese Lösung eindeutig bevorzugen.

      Birdy

      1. Hi,

        Die Idee war folgende

        if(http Aufruf von fremden Server)
        {
            .htaccess
            Überprüfung ob berechtigt
            if(berechtigt)
            {
               http aufruf vom Server wo auth.php liegt
               .htaccess lässt diesen Aufruf durch

        }

        }else if(http Aufruf vom auth.php Server )
        {
            direkte Weiterleitung auf die URL

        }

        Die zweite if-Bedingung ist aber unsinnig, weil der Aufruf nicht durch den Server stattfindet, sondern immer noch durch den Client.

        Wenn es die Möglichkeit gibt, intern im Apache zu überprüfen, ob die URL unter bestimmten Restriktionen ausgeliefert werden kann, würde ich diese Lösung eindeutig bevorzugen.

        Wenn du kein HTTP Auth willst, dann gibt es da aber keine wirklich praktikablen Möglichkeiten mehr.

        Die Dateien über ein PHP-Script ausliefern zu lassen, ist dann der gebräuchliche Ansatz.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?