Code: Alles auswählen
RewriteEngine on
RewriteRule ^alben/([\w /]+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Code: Alles auswählen
RewriteEngine on
RewriteRule ^alben/([\w /]+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Was genau klappt denn nicht? Elevars Vorschlag wird wohl keine Besserung bringen, denn er sieht in meinen Augen falsch aus.Aber das klappt irgendwie nicht.
Nun, dein Script sollte schon genau wissen wo die Datei liegt. Auch sollte der User mit seinen momentanen htaccess-Zugriffsrechten auf das Script zugreifen können.Vielleicht sollte ich noch darauf hinweisen, dass ich in dem geschützen Ordner noch Unterordner habe und da die eigentlichen Bilder drinliegen. Aber wenn ich die Zeile richtig interpretiere müsste das doch trotzdem klappen, oder
Code: Alles auswählen
RewriteEngine on
RewriteRule ^alben/((\w+/)*\w+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Das w mit Backslash steht für alle "Wörterzeichen", man schreibt also \w als Abkürzung. Je nach Servereinstellung kann diese Buchstabenklasse was anderes bedeuten, aber typischerweise ist sie so definiert: \w = [a-zA-Z0-9_]Wozu ist das W oben eigentlich gut?
Code: Alles auswählen
RewriteEngine on
RewriteRule ^\.\./alben/([\w /]+\.(jpg|gif|png))$ ../system/bildload.php?bild=../alben/$1
Doch, tut es. Du wirst dich wohl vertippt haben:Fightmeyer hat geschrieben:Klappt laut diesem Onlinetest auch nicht. Kein match.
Das ist mir klar, ich sehe darin aber kein Problem. Ich lass dich dann aber mal in deiner Rechthaberei alleine.Beowulf hat geschrieben:Elevars Vorschlag ist immer noch falsch! Bei ihm führen auch Strings wie "alben// ///test////bild1.jpg" zum Match.
Fightmeyer hat geschrieben:Du hast recht. Bei Dir hat es auch geklappt. ALlerdings nur, wenn der Link keine führenden ../ hat.
Dies verstehe ich nicht. Wozu dieses ../ ? Du führst ständig neue Variationen ein, und wunderst dich, dass es nicht klappt!Fightmeyer hat geschrieben:Aber der HTML-Code sieht ja eher so aus:<img src="/../alben/bla/blub.jpg">Alternativtext</img> und dann noch irgendwas
Nein, ganz falsch. Es werden lediglich Dateianfragen geprüft, kein Quelltext. Jedes mal, wenn dein Browser vom Server eine Datei anfordert, wird die RewriteRule des entsprechenden Verzeichnisses überprüft, und dann bei einem Match die Anfrage auf eine andere Datei umgeleitet. Daher ist es wichtig, diese RewriteRule sicher zu machen, damit kein Hacker auf Dateien zugreifen kann, auf die er nicht zugreifen darf.Fightmeyer hat geschrieben:Ich dachte, das funktioniert nach dem Prinzip, dass einfach jeglicher String aus dem Quelltext geprüft wird, oder?
Gerne. Du scheinst sowieso immer ein Problem damit zu haben, wenn andere Recht haben.elevar hat geschrieben:Ich lass dich dann aber mal in deiner Rechthaberei alleine.
Klasse. Das war es. Jetzt haut es hin.Beowulf hat geschrieben:Fightmeyer hat geschrieben:Du hast recht. Bei Dir hat es auch geklappt. ALlerdings nur, wenn der Link keine führenden ../ hat.Dies verstehe ich nicht. Wozu dieses ../ ? Du führst ständig neue Variationen ein, und wunderst dich, dass es nicht klappt!Fightmeyer hat geschrieben:Aber der HTML-Code sieht ja eher so aus:<img src="/../alben/bla/blub.jpg">Alternativtext</img> und dann noch irgendwasWenn dieses ../ bei allen Links der Fall ist, sehe ich kein Problem darin, im Regulären Ausdruck vor dem alben ein \.\./ zu schreiben.
Code: Alles auswählen
order deny,allow
deny from all
allow from localhost
Was meinst du damit genau? Wolltest du die Zugriffsrechte nicht per PHP steuern?Fightmeyer hat geschrieben:Wie müssten die Berechtigungen gesetzt werden?
Das ist gewährleistet. Trotzdem klappt es nicht mehr, sobald ich das so einstelle.Beowulf hat geschrieben:Das "allow from localhost" kannst du dir sparen, da die Zugriffssteuerung per htaccess nicht für die Dateiverwaltung von PHP-Scripten greift. Du kannst also mit "deny from all" ein Unterverzeichnis schützen, aber das Script vom übergeordneten Verzeichnis kann trotzdem darauf zugreifen. Einzige Voraussetzung ist, dass das Script selber in einem Verzeichnis liegt, auf das der User zugreifen darf.
Ich meinte damit die Einstellungen in der htaccess. Die REchte per PHP richte ich erst danach ein, wenn das GRundgerüst steht.Beowulf hat geschrieben:Was meinst du damit genau? Wolltest du die Zugriffsrechte nicht per PHP steuern?Fightmeyer hat geschrieben:Wie müssten die Berechtigungen gesetzt werden?