Apche / .htacess
birdyburns
- webserver
0 MudGuard0 ChrisB0 birdyburns0 ChrisB
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
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
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.
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
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
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