Naja. Sobald ich diese Zeile in die htaccess einfüge "deny from all" klappt der Aufruf der Bilder nicht mehr. Sieht also stark danach aus, dass dann nicht mehr auf das Verzeichnis zugegriffen werden kann. Auch nicht mehr über das PHP-Bilder-Lade-ScriptBeowulf hat geschrieben:Was genau klappt denn nicht?
Frage an die PHP-Experten...
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Re: Frage an die PHP-Experten...
Dies ist seltsam. Aber das Script selber liegt ja in einem anderen Verzeichnis, oder? Wäre gut, wenn du mal eine Übersicht der Verzeichnisse hier reinstellen könntest.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Das sieht bei mir so aus:
root -> htaccess, die nur bestimmte Nutzer reinlässt
root\alben\ -> htaccess, wie hier im Thread besprochen
root\system\ da liegt die bildload.php
root\scripte\*.php -> da liegen die diversen phps, in denen dann die Aufrufe der Bilder drinstehen
root -> htaccess, die nur bestimmte Nutzer reinlässt
root\alben\ -> htaccess, wie hier im Thread besprochen
root\system\ da liegt die bildload.php
root\scripte\*.php -> da liegen die diversen phps, in denen dann die Aufrufe der Bilder drinstehen
Re: Frage an die PHP-Experten...
Verstehe. Wie sieht denn die htaccess vom Root-Verzeichnis aus? Und gewöhne dir bitte, bitte auch mal an, Fehlermeldungen anzugeben!
Wenn der Aufruf der Bilder nicht klappt, muss das PHP-Script bildload.php ja schließlich Fehlermeldungen ausspucken, oder? Auch kann das Lesen dieser Meldungen auch dir allein schon stark weiterhelfen.

- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Das Script scheint ja gar nicht erst ausgeführt zu werden. Demnach gibts auch keine PHP-Fehlermeldung.
Die htaccess in der Root sieht so aus:
Wenn ich mit der kompletten htacces im Albenordner allerdings mal direkt die bildload.php im Browser aufrufe, ("http://domain.de/system/bildload.php?bi ... 000003.jpg"), dann zeigt er das Bild an. Kann man das noch erklären? Das scheint ja dann so, dass das Linkumbiegen mit der Deny-Option dann irgendwie nicht mehr richtig funktioniert.
Die htaccess in der Root sieht so aus:
Code: Alles auswählen
<IfModule mod_php.c>
php_value display_errors 1
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
ErrorDocument 401 /index.php
ErrorDocument 400 /index.php
ErrorDocument 403 /index.php
ErrorDocument 500 /index.php
ErrorDocument 404 /index.php
<Files index.php>
satisfy any
</Files>
<Files *.css>
satisfy any
</Files>
<Files *.*>
require valid-user
</Files>
AuthName "Benutzeranmeldung:"
AuthType Basic
AuthGroupFile /pfad/.htgroups
AuthUserFile /pfad/.htusers
Re: Frage an die PHP-Experten...
Danke erstmal für die Infos!
Wenn du da nichts findest, wäre der Code der bildload.php für mich vielleicht hilfreich. Ich kann mir einfach nicht vorstellen, das eine htaccess-Datei in "alben" eine Auswirkung auf Links zum Verzeichnis "system" hat.

Dies ist eigentlich so, wie es sein sollte. Nur dass die Anzeige in deiner PHP-Seite nicht funktioniert, ist sehr verwunderlich. Sind die Image-Tags vielleicht nicht korrekt? Vielleicht irgendein Tippfehler oder so. Oder aktualisier einfach mal die Seiten, vielleicht schwirrt da was falsches im Cache rum.Fightmeyer hat geschrieben:Wenn ich mit der kompletten htacces im Albenordner allerdings mal direkt die bildload.php im Browser aufrufe, ("http://domain.de/system/bildload.php?bi ... 000003.jpg"), dann zeigt er das Bild an. Kann man das noch erklären?
Wenn du da nichts findest, wäre der Code der bildload.php für mich vielleicht hilfreich. Ich kann mir einfach nicht vorstellen, das eine htaccess-Datei in "alben" eine Auswirkung auf Links zum Verzeichnis "system" hat.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Also meine Bildload.PHP ist bisher recht rudimentär:
Wie gesagt: Ohne "deny from all" in der Albenordner-htaccess klappt das auch tadellos. Und wenn ich die bildload.php direkt verwende ja auch.
Für mich scheint es so, dass durch den Eintrag "deny from all", auch die ReWriterule außer Kraft gesetzt wird. Das würde zumindest dieses Verhalten erklären.
Nochmal zur Verdeutlichung: Das "deny from all" steh in der gleichen htaccess, wie auch die Rewriterule und die liegt im Albenorder.
EDIT: Ich hab das ürbigens mal ebend mit nem frisch aufgesetzem Xampp auf meinem lokalen Rechner getestet. Genau das gleiche Verhalten.
Code: Alles auswählen
<?php
$datei=fopen($_GET['bild'],r);
echo fread($datei,1500000);
fclose($datei);
?>
Für mich scheint es so, dass durch den Eintrag "deny from all", auch die ReWriterule außer Kraft gesetzt wird. Das würde zumindest dieses Verhalten erklären.
Nochmal zur Verdeutlichung: Das "deny from all" steh in der gleichen htaccess, wie auch die Rewriterule und die liegt im Albenorder.
EDIT: Ich hab das ürbigens mal ebend mit nem frisch aufgesetzem Xampp auf meinem lokalen Rechner getestet. Genau das gleiche Verhalten.
Re: Frage an die PHP-Experten...
Nein, denn dann würde auch der direkte Aufruf über die Adressleiste des Browsers nicht funktionieren.Fightmeyer hat geschrieben:Für mich scheint es so, dass durch den Eintrag "deny from all", auch die ReWriterule außer Kraft gesetzt wird. Das würde zumindest dieses Verhalten erklären.
Wie wirkt sich denn das "Nichtanzeigenkönnen" genau aus? Sind die Bilder einfach nur nicht da, der Rest der Seite schon?
Ich habe eher die Vermutung, dass die RewriteRule überhaupt nicht greift, und du mit den Scripten direkt auf die Bilder zugreifst. Dies kannst du testen, indem du das echo fread.... in der bildload.php bei deaktivierter htaccess auskommentierst.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Ja genau so. Es wird dieses Browser-Standardymbol angezeigt für "broken Picture". Der Rest der Seite wird ganz normal gerendert.Beowulf hat geschrieben: Wie wirkt sich denn das "Nichtanzeigenkönnen" genau aus? Sind die Bilder einfach nur nicht da, der Rest der Seite schon?
Stimmt. Dem ist tatsächlich so. Was könnte denn jetzt noch die Ursache dafür sein?Beowulf hat geschrieben: Ich habe eher die Vermutung, dass die RewriteRule überhaupt nicht greift, und du mit den Scripten direkt auf die Bilder zugreifst. Dies kannst du testen, indem du das echo fread.... in der bildload.php bei deaktivierter htaccess auskommentierst.
Re: Frage an die PHP-Experten...
Ok, fühlen wir dem Ganzen noch mal etwas genauer auf dem Zahn, könnte ja alles an einem einfachen Tippfehler liegen:
Stell noch mal die htaccess mit der RewriteRule möglichst komplett hier rein und gib das Verzeichnis an in dem sie abgespeichert ist, dann mal ein typischen Image-Tag aus der PHP-Datei und auch deren Verzeichnis.
Stell noch mal die htaccess mit der RewriteRule möglichst komplett hier rein und gib das Verzeichnis an in dem sie abgespeichert ist, dann mal ein typischen Image-Tag aus der PHP-Datei und auch deren Verzeichnis.
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Beowulf hat geschrieben: Stell noch mal die htaccess mit der RewriteRule möglichst komplett hier rein
Code: Alles auswählen
RewriteEngine on
RewriteRule ^\.\./alben/((\w+/)*\w+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
deny from all
www.meinedomain.de/albenBeowulf hat geschrieben: und gib das Verzeichnis an in dem sie abgespeichert ist,
<img src="/../alben/9/thumbs/th_cimg3350.jpg">Beowulf hat geschrieben: dann mal ein typischen Image-Tag aus der PHP-Datei und auch deren Verzeichnis.
Liegt unter www.meinedomain.de/scripte
Re: Frage an die PHP-Experten...
Ok, hier mein Änderungsvorschlag:
Die RewriteRule liegt für mein Verständnis im falschen Verzeichnis. Ich würde sie ins Root-Verzeichnis packen. Denn ich kann mir gut vorstellen, dass eine htaccess, die in einem Verzeichnis liegt auf das man nicht zugreifen darf, nicht aktiv ist.
Auch ist die RewriteRule für dieses Verzeichnis nicht korrekt, denn das Verzeichnis wird ja nicht über alben/../alben angesprochen, sondern direkt. Folgender reguläre Ausdruck wäre demnach korrekt gewesen:
Aber ich würde stattdessen einfach vorschlagen, die RewriteRule ins Root zu packen:
Dann bleibt nur das im alben-Verzeichnis übrig:
Die RewriteRule liegt für mein Verständnis im falschen Verzeichnis. Ich würde sie ins Root-Verzeichnis packen. Denn ich kann mir gut vorstellen, dass eine htaccess, die in einem Verzeichnis liegt auf das man nicht zugreifen darf, nicht aktiv ist.
Auch ist die RewriteRule für dieses Verzeichnis nicht korrekt, denn das Verzeichnis wird ja nicht über alben/../alben angesprochen, sondern direkt. Folgender reguläre Ausdruck wäre demnach korrekt gewesen:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^((\w+/)*\w+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Code: Alles auswählen
RewriteEngine on
RewriteRule ^alben/((\w+/)*\w+\.(jpg|gif|png))$ system/bildload.php?bild=../alben/$1
Code: Alles auswählen
deny from all
- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Habs gerade ausprobiert. Klappt leider auch nicht. Die Bilder werden als "broken" angezeigt. Die Rewriterule scheint also nach wie vor nicht zu greifen. Es ist echt zum Verzweifeln.
Hast Du noch ne Idee, was man noch machen könnte?
Wenn das alles nicht klappt, dann werd ich die links im Quelltext "hart" auf die bildload.php umkodieren. Dann gehts halt nicht anders.
P.S. Danke für Deine Geduld Beowulf...
Hast Du noch ne Idee, was man noch machen könnte?
Wenn das alles nicht klappt, dann werd ich die links im Quelltext "hart" auf die bildload.php umkodieren. Dann gehts halt nicht anders.
P.S. Danke für Deine Geduld Beowulf...
Re: Frage an die PHP-Experten...
Kein Problem! 
Es wäre mal auszutesten, ob die RewriteEngine überhaupt aktiv ist. Schreib mal folgendes in die htaccess vom Root:
Hier wird test.html auf index.php umgeleitet. Die test.html sollte keine existierende Datei sein, die index.php schon. Sollte keine index.php bei dir existieren, nimm einfach den Namen irgendeiner anderen existierenden Datei. Willst du jetzt auf http://www.meinedomain.de/test.html zugreifen, müsste die Indexseite aufgerufen werden. Wenn nicht, dann haben wir ein Problem! 

Es wäre mal auszutesten, ob die RewriteEngine überhaupt aktiv ist. Schreib mal folgendes in die htaccess vom Root:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^test\.html$ index.php

- Fightmeyer
- Riesiger Roboteraffe
- Beiträge: 7309
- Registriert: 16.12.2004, 22:51
- Wohnort: Potsdam
- Kontaktdaten:
Re: Frage an die PHP-Experten...
Also das hat funktioniert. Grundsätzlich scheint die Umleitung also zu klappen. Dann ist vielleicht doch noch irgendein Fehler in der ReWriteRule vorhanden...