htaccess-Weiterleitung (Anfänger)
Michael
- webserver
0 Tom0 Michael0 Tom0 Der Martin
0 Michael
0 hotti0 Michael
Einen schönen Sonntag wünsch ich!
Ich hoffe bei dem schlechten Wetter sitzen noch ein paar Leute vor dem PC und können mir helfen ;)
Also ich möchte eine htaccess-Weiterleitung schreiben, die alle Aufrufe aller *.png-Dateien weiterleitet auf bild.php?id=Dateiname.
Beispiele:
foobar.png => bild.php?id=foobar
123456.png => bild.php?id=123456
a1b2c3.png => bild.php?id=a1b2c3
Ich habe leider noch nie mit Weiterleitungen gearbeitet also habe ich auch keine Ahnung wie ich jetzt ansetzen muss. (Ich such gerade ein einfaches Tutorial)
Ist es schwer sowas umzusetzen oder kann ich mich als Anfänger ohne Probleme (oder Gefahren) da ran wagen? Gibt es vorab wichtige Dinge die ich wissen sollte um "typische Anfängerfehler" zu vermeiden?
Ich wär euch für ein bisschen Hilfe oder ein paar kleine Beispiele sehr dankbar!
LG
Hello,
Also ich möchte eine htaccess-Weiterleitung schreiben, die alle Aufrufe aller *.png-Dateien weiterleitet auf bild.php?id=Dateiname.
Beispiele:
foobar.png => bild.php?id=foobar
123456.png => bild.php?id=123456
a1b2c3.png => bild.php?id=a1b2c3
http://httpd.apache.org/docs/2.2/urlmapping.html
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
<//httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteengine>
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule
RewriteEngine on
RewriteRule ^(.*.png)$ bild.php?id=$1
würde hier vermutlich schon reichen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom!
RewriteEngine on
RewriteRule ^(.*.png)$ bild.php?id=$1
würde hier vermutlich schon reichen.
Danke für die Links und das Beispiel!
... auch wenn ich nicht unbedingt gleich die Lösung wollte :D
Jetzt wollte ich das grad mit meinem XAMPP (standardinstallation) testen aber *huch* unter Windows kann ich ja gar keine ".htaccess" erstellen.
Muss ich da den Punkt weg lassen?
LG
Hello,
RewriteEngine on
RewriteRule ^(.*.png)$ bild.php?id=$1
würde hier vermutlich schon reichen.Danke für die Links und das Beispiel!
... auch wenn ich nicht unbedingt gleich die Lösung wollte :DJetzt wollte ich das grad mit meinem XAMPP (standardinstallation) testen aber *huch* unter Windows kann ich ja gar keine ".htaccess" erstellen.
Unter WinXP auf jeden Fall schon.
Unter Win98 nur mit einem entsprechenden Editor.
Wie es bei Win2000 war, habe ich vergessen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom,
unter Windows kann ich ja gar keine ".htaccess" erstellen.
Unter WinXP auf jeden Fall schon.
Unter Win98 nur mit einem entsprechenden Editor.
Wie es bei Win2000 war, habe ich vergessen.
das geht unter allen Windows-Versionen von 95 bis XP gleich schlecht oder gleich gut. Vista und Windows 7 vermutlich ebenso.
So long,
Martin
Hello,
unter Windows kann ich ja gar keine ".htaccess" erstellen.
Unter WinXP auf jeden Fall schon.
Unter Win98 nur mit einem entsprechenden Editor.
Wie es bei Win2000 war, habe ich vergessen.das geht unter allen Windows-Versionen von 95 bis XP gleich schlecht oder gleich gut. Vista und Windows 7 vermutlich ebenso.
Unter WinXP habe ich damit überhaupt keine Probleme und habe es die letzten Tage für eine paar Tests auch öfter mit dem LAMPP benutzt.
Allerdings lege ich die .htaccess-Datei auch meistens gleich mit Textpad an. Ich liebe diesen Editor, muss ihm nur endlich mal die neue PHP-Syntax-Datei beibringen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom & Martin!
Es ist tatsächlich so, dass man eine Datei im Explorer mit führendem Punkt _nicht_ erstellen oder dazu umbenennen kann.
Bsp.:
Rechtsklick auf dem Desktop -> Neu -> Textdokument -> dann den Namen eintippen: ".htaccess" -> Ergebnis: "Bitte geben sie einen Dateinamen ein." -> Ok
Notepad öffnen -> Datei schreiben -> speichern unter ".htaccess" -> Klappt!
LG
Hallo,
Jetzt wollte ich das grad mit meinem XAMPP (standardinstallation) testen aber *huch* unter Windows kann ich ja gar keine ".htaccess" erstellen.
doch, sicher. Der einzige, der sich da ein bisschen zickig anstellt, ist der Windows Explorer. Aber du kannst eine Textdatei entweder direkt aus dem Editor als ".htaccess" speichern, oder nachträglich auf der Konsole umbenennen.
Muss ich da den Punkt weg lassen?
Nicht, wenn du willst, dass der Apache diese Datei auch beachtet. Der Dateiname mit führendem Punkt ist da voreingestellt. Wobei ... diesen Namen kann man natürlich auch in der Serverkonfiguration ändern. Aber wozu?
So long,
Martin
Hallo Tom!
RewriteEngine on
RewriteRule ^(.*.png)$ bild.php?id=$1
würde hier vermutlich schon reichen.
Schade, ich hatte mich irgendwie gefreut die Lösung zu bekommen, die Links hätte ich mir dann später angeschaut.
Leider reicht das doch nicht.
Meine id ist in dem Fall z.B. "foobar.png", nicht "foobar" wie sie sein soll.
Ich muss mich also doch erstmal durch die Links kämpfen um zu verstehen was da schief läuft :|
LG
Hello Miachel,
RewriteEngine on
RewriteRule ^(.*.png)$ bild.php?id=$1
würde hier vermutlich schon reichen.Schade, ich hatte mich irgendwie gefreut die Lösung zu bekommen, die Links hätte ich mir dann später angeschaut.
Ja was denn nun. Wolltest Du mitdenken, oder nicht?
RewriteEngine on
RewriteRule ^(.*)(.png)$ bild.php?id=$1
^ ^
| |
$1 $2
Meine id ist in dem Fall z.B. "foobar.png", nicht "foobar" wie sie sein soll.
Wie wäre das denn. Als Backreferenz nehmen wir einfach nur die erste und die zweite lassen wir versickern.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo Tom!
Jaja, ich war doch dabei...
Verdammt, ich hatte es vor einer Minute gefunden und wollte eigentlich nur noch bescheid sagen, dass das Problem gelöst ist xD
Da warst du wohl schneller...
Herzlichen Dank für deine Hilfe!
LG
Hallo,
Hello Miachel
Häuptling Flinker Finger? ;-)
RewriteRule ^(.*)(.png)$ bild.php?id=$1
^ ^
$1 $2
Falsch auseinandergeklammert. Bestimmt wolltest du den Punkt von ".png" nicht von seinem Backslash trennen. So ist die schließende Klammer Teil des Suchmusters.
Ciao,
Martin
Falsch auseinandergeklammert. Bestimmt wolltest du den Punkt von ".png" nicht von seinem Backslash trennen. So ist die schließende Klammer Teil des Suchmusters.
Hehe, das hab ich nichtmal bemerkt.
Aber das der Backslash zum maskieren dient hab ich wohl schon rausgefunden.
Nochmal richtig fürs Archiv:
RewriteRule ^(.*)(.png)$ bild.php?id=$1
LG
Hi,
Nochmal richtig fürs Archiv:
RewriteRule ^(.*)(.png)$ bild.php?id=$1
Wenn schon, dann so:
RewriteRule ^(.*).png$ bild.php?id=$1
Die zweite Klammer wird nicht referenziert, also sollte man sie weglassen - das spart der Regex-Engine Arbeit.
cu,
Andreas
Hallo Andreas!
Die zweite Klammer wird nicht referenziert, also sollte man sie weglassen - das spart der Regex-Engine Arbeit.
Danke für den Hinweis!
Ich habe es dann mittlerweile auch geschafft Unterverzeichnisse auszuschließen.
Könntest du nochmal schauen ob ich es richtig gemacht habe?
RewriteRule ^([^/]+).png$ dsg.php?id=$1
Zumindest funktioniert es auf den ersten Blick.
Ich muss auch zugeben, dass ich eher durch Zufall und nach ein bisschen rumprobieren mit dem Regex Coach darauf gestossen bin. Es erscheint mir mittlerweile allerdings auch logisch.
LG
hi,
Also ich möchte eine htaccess-Weiterleitung schreiben, die alle Aufrufe aller *.png-Dateien weiterleitet auf bild.php?id=Dateiname.
Wenn Du mal sagst, warum Du das möchtest, also wozu, hätte ich evntl. eine andere Lösung, die den Server nicht so abwürgt.
Hotte
Hallo Hotte!
Wenn Du mal sagst, warum Du das möchtest, also wozu, hätte ich evntl. eine andere Lösung, die den Server nicht so abwürgt.
Ist das denn so belastend?
Es geht darum, dass Benutzerbilder generiert, aber nicht gespeichert werden.
Das heißt bei jedem Aufruf wird das Bild neu generiert.
Damit man das Bild jetzt auch woanders einbinden kann, speziell als Forumssignatur, soll die Adresse dazu ebend kein *.php?id=foobar sondern foobar.png sein.
Und da hab ich auch schon ein wieder Problem :(
Die Regel die "wir" unten geschrieben haben, betrifft leider auch PNGs in Unterverzeichnissen.
Genauer wenn ich http://localhost/test/foobar.png schreibe erhalte ich mein gewünschtes Bild.
Das Problem ist jetzt aber, dass http://localhost/test/UNTERVERZEICHNIS/foobar.png _nicht_ weitergeleitet werden soll.
Ist das möglich oder wird die Weiterleitung in jedem Fall "vererbt"?
LG