Ingo Siemon: Grafikanzeige per .htaccess-Datei beeinflussen

Hallo Ihr Lieben

Ich habe ein bestimmtes Verzeichnis, in dem 20 verschiedene
Bannermotive liegen. Es sind alles gif-Dateien.

Diese Dateien haben die Dateinamen:
SPACEart-01.gif
SPACEart-02.gif
SPACEart-03.gif
SPACEart-04.gif
u.s.w.-

Wenn nun ein Internet-User in seinen Browser folgenden Link eingibt
(oder ihn auf seiner Homepage einbaut):
http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
soll bei jedem Aufruf dieses Links ein anderes der oben genanten Banner angezeigt werden
(per Zufall ausgewählt, oder einfach immer der Reihe nach ... das ist egal)

Ist so etwas mit einer .htaccess-Datei lösbar ?

Falls ja, würde ich gleich ganz frech weiterfragen, wie ?
Wie müsste also eine .htaccess-Datei ganz excat aussehen,
damit sie obige Funktion erfüllt ?

Über Hilfe wäre ich natürlich sehr glücklich ?

Gruß aus Münster
Ingo Siemon

  1. Ich habe ein bestimmtes Verzeichnis, in dem 20 verschiedene
    Bannermotive liegen. Es sind alles gif-Dateien.

    Wenn nun ein Internet-User in seinen Browser folgenden Link eingibt
    (oder ihn auf seiner Homepage einbaut):
    http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
    soll bei jedem Aufruf dieses Links ein anderes der oben genanten Banner angezeigt werden
    (per Zufall ausgewählt, oder einfach immer der Reihe nach ... das ist egal)

    Ist so etwas mit einer .htaccess-Datei lösbar ?

    Sicher, kein Problem.

    Falls ja, würde ich gleich ganz frech weiterfragen, wie ?
    Wie müsste also eine .htaccess-Datei ganz excat aussehen,
    damit sie obige Funktion erfüllt ?

    Suche Dir einen Hoster, der ein Modul in seinem Apache hat, mit dem sich Dateien zufällig aussuchen lassen. Das brauchst Du dann nur noch in der .htaccess einschalten - fertig.

    Gruß,
      soenk.e

    PS: Das Servermodul mußt Du wahrscheinlich selber schreiben, auf [http://http://modules.apache.org/] bin ich nicht so recht fündig geworden.

    PPS: PHP oder Perl bringen Dich wahrscheinlich schneller an's Ziel.

  2. use Mosche;

    Diese Dateien haben die Dateinamen:
    SPACEart-01.gif
    SPACEart-02.gif
    SPACEart-03.gif
    SPACEart-04.gif
    u.s.w.-

    Wenn nun ein Internet-User in seinen Browser folgenden Link eingibt
    (oder ihn auf seiner Homepage einbaut):
    http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
    soll bei jedem Aufruf dieses Links ein anderes der oben genanten Banner angezeigt werden
    (per Zufall ausgewählt, oder einfach immer der Reihe nach ... das ist egal)

    Ist so etwas mit einer .htaccess-Datei lösbar ?

    Ja. Nimmst zuerst eine Rewrite Rule und leitest alle Anfragen an SPACEart-W.gif an ein entsprechendes Script weiter. Das Script gibt zufällig eine Grafik aus. Eigentlich ganz einfach.

    Ist einfacher als ein Servermodul zu schreiben, weil wahrscheinlich auch universell einsetzbarer (wenn man einen restriktiven Provider hat).

    use Tschoe qw(Matti);

    1. Lieber Matti

      Ist so etwas mit einer .htaccess-Datei lösbar ?

      Ja. Nimmst zuerst eine Rewrite Rule und leitest alle Anfragen an SPACEart-W.gif an ein entsprechendes Script weiter. Das Script gibt zufällig eine Grafik aus. Eigentlich ganz einfach.

      Ist einfacher als ein Servermodul zu schreiben, weil wahrscheinlich auch universell einsetzbarer (wenn man einen restriktiven Provider hat).

      Vielen lieben Dank für Deine Antwort :)

      Ich muss leider gestehen, dass ich nicht kompetent genug bin,
      eine entsprechende Rewrite Rule und ein dazugehöriges Script
      zu erstellen.

      Darum gleich eine "freche" Frage/Bitte:
      Könntest Du mir das evtl. erstellen ?
      Es darf auch was kosten :)

      Es würde mich riesig freuen,
      diesbezüglich wieder von Dir zu hören/lesen :))

      Gruß aus Münster
      Ingo Siemon

      1. Ja. Nimmst zuerst eine Rewrite Rule und leitest alle Anfragen an SPACEart-W.gif an ein entsprechendes Script weiter. Das Script gibt zufällig eine Grafik aus. Eigentlich ganz einfach.

        Ich muss leider gestehen, dass ich nicht kompetent genug bin,
        eine entsprechende Rewrite Rule und ein dazugehöriges Script
        zu erstellen.

        http://www.google.com/search?q=apache+rewrite+rule
        http://httpd.apache.org/docs/mod/mod_rewrite.html
        http://httpd.apache.org/docs/misc/rewriteguide.html

        http://www.google.com/search?q=php+banner+rotation+script
        http://px.sklar.com/code.html?code_id=49

        http://selfsuche.teamone.de/

  3. Hi Ingo,

    Ist so etwas mit einer .htaccess-Datei lösbar ?

    Im Widerspruch zu den vorherigen Postings: Nein.

    Eine .htaccess-Datei erlaubt Dir, Teile der Apache-Konfigurationsanweisungen selbst vorzunehmen - nicht aber, irgendwelche Intelligenz ablaufen zu lassen.
    .htaccess ist keine Programmiersprache - Du brauchst aber ein Programm, welches die Zufallsfunktion realisiert.
    .htaccess mag Dir unterschiedlich komfortable Möglichkeiten geben, dieses Programm mit Deinen URLs zu verbinden. Aber das brauchst Du nicht.

    Du kannst ein CGI-Skript unter einem beliebigen URL aufrufen. Selbst unter einem URL, der mit der Zeichenkette ".gif" endet! _Das_ wiederum läßt sich in der Apache-Konfiguration regeln - und auch Deine .htaccess-Datei könnte dabei nützlich sein.

    Vergiß also zunächst mal die .htaccess-Idee und schreibe Dir ein CGI-Skript, welches
    1. eine Zahl auswürfelt,
    2. den Inhalt einer Datei einliest und
    3. diesen Inhalt samt HTTP-Header nach stdout ausgibt.
    Denn das ist es, was Du haben willst: Ein "Bild" mit variablem Inhalt.

    Unter welchem URL dieses Bild ansprechbar ist, klären wir in Phase 2 - okay?

    Viele Grüße
          Michael

    1. Lieber Michael

      Du kannst ein CGI-Skript unter einem beliebigen URL aufrufen. Selbst unter einem URL, der mit der Zeichenkette ".gif" endet! _Das_ wiederum läßt sich in der Apache-Konfiguration regeln - und auch Deine .htaccess-Datei könnte dabei nützlich sein.

      Vergiß also zunächst mal die .htaccess-Idee und schreibe Dir ein CGI-Skript, welches

      1. eine Zahl auswürfelt,
      2. den Inhalt einer Datei einliest und
      3. diesen Inhalt samt HTTP-Header nach stdout ausgibt.
        Denn das ist es, was Du haben willst: Ein "Bild" mit variablem Inhalt.

      Vielen lieben Dank für Deine nette Antwort !
      Ich muss aber leider zu meiner Schande gestehen, dass ich keiner Scriptsprache mächtig bin :)
      Darum suche ich jemanden, der das sozusagen für mich macht :)
      Ich bin übrigens auch bereit, was dafür zu bezahlen.

      Unter welchem URL dieses Bild ansprechbar ist, klären wir in Phase 2 - okay?

      Würde mich natürlich SUPERdoll freuen, wenn Du mir bei dem Probelm weiter helfen könntest :)

      Gruß aus Münster
      Ingo Siemon

      1. Vergiß also zunächst mal die .htaccess-Idee und schreibe Dir ein CGI-Skript, welches

        Ich muss aber leider zu meiner Schande gestehen, dass ich keiner Scriptsprache mächtig bin :)

        Du hast leider nicht geschrieben, welche Sprache Du auf Deinem Server verwenden kannst.
        Da anscheinend niemand bemerkt hat, daß meine (zwar korrekte) Antwort nicht so ganz ernst gemeint war (und mein der Inhalt meines PS betreffs Perl und PHP jetzt schon zum zweiten Mal wiederholt wurde:), melde ich mich nochmal. Soll ja keiner einen schlechten Eindruck von mir bekommen ;) Vielleicht macht Dich ja folgende PHP-Lösung glücklich:

        Vergiss den Aufwand mit Rewrite Rule, CGI und .htaccess. Du richtest unter http://www.SPACEart.info/Banner/Eigene/ folgende Dateien ein:

        SPACEart-1.gif
        SPACEart-2.gif
        SPACEart-3.gif
        SPACEart-4.gif
        etc.

        Beachte, daß die Zahlen der Einfachheit halber keine Null mehr haben. Dazu kommt dann noch eine Datei namens

        index.php

        In diese Datei index.php schreibst Du dann folgendes:

        <?php
        header("Content-Type: image/gif");
        readfile("SPACEart-". rand(1,4) .".gif");
        exit;
        ?>

        Fertig. Die 4 in der dritten Zeile mußt Du durch die Anzahl Deiner Banner ersetzen, genauer: durch die Zahl in Deinem letzten Banner. Die Banner müssen durchgehend nummeriert werden.

        Aufgerufen wird das mit "http://www.SPACEart.info/Banner/Eigene" oder "http://www.SPACEart.info/Banner/Eigene/index.php".
        Ausprobieren kannst Du es unter http://kino-fahrplan.de/test/.

        Gruß,
          soenk.e

        1. Lieber Soenke

          Vielen lieben Dank für Deinen Tipp.
          Dank dessen bin ich nun endlich ein Stück weiter gekommen.
          FREU :)))))

          Du hast leider nicht geschrieben, welche Sprache Du auf Deinem Server verwenden kannst.

          Pearl, PHP, alles was Du willst :)

          Da anscheinend niemand bemerkt hat, daß meine (zwar korrekte) Antwort nicht so ganz ernst gemeint war (und mein der Inhalt meines PS betreffs Perl und PHP jetzt schon zum zweiten Mal wiederholt wurde:), melde ich mich nochmal. Soll ja keiner einen schlechten Eindruck von mir bekommen ;) Vielleicht macht Dich ja folgende PHP-Lösung glücklich:

          Vergiss den Aufwand mit Rewrite Rule, CGI und .htaccess. Du richtest unter http://www.SPACEart.info/Banner/Eigene/ folgende Dateien ein:

          SPACEart-1.gif
          SPACEart-2.gif
          SPACEart-3.gif
          SPACEart-4.gif
          etc.

          Beachte, daß die Zahlen der Einfachheit halber keine Null mehr haben. Dazu kommt dann noch eine Datei namens

          index.php

          In diese Datei index.php schreibst Du dann folgendes:

          <?php
          header("Content-Type: image/gif");
          readfile("SPACEart-". rand(1,4) .".gif");
          exit;
          ?>

          Fertig. Die 4 in der dritten Zeile mußt Du durch die Anzahl Deiner Banner ersetzen, genauer: durch die Zahl in Deinem letzten Banner. Die Banner müssen durchgehend nummeriert werden.

          Aufgerufen wird das mit "http://www.SPACEart.info/Banner/Eigene" oder "http://www.SPACEart.info/Banner/Eigene/index.php".
          Ausprobieren kannst Du es unter http://kino-fahrplan.de/test/.

          Genauso habe ich es nun gemacht und es funxt auch genauso, wie ich es mir gewünscht habe :)

          Nun habe ich nur noch eine Frage:
          Was genau muss ich die .htaccess schreiben, damit es auch beim Aufruf von
          http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
          funxt ?

          Es würde mich wirklich RIESIG freuen, wenn Du mir da noch einmam behilflich sein könntst :)))

          Gruß aus Münster
          Ingo Siemon

          1. Aufgerufen wird das mit "http://www.SPACEart.info/Banner/Eigene"

            Nun habe ich nur noch eine Frage:
            Was genau muss ich die .htaccess schreiben, damit es auch beim Aufruf von
            http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
            funxt ?

            Da hilft Dir sicher [http://httpd.apache.org/docs/mod/mod_alias.html#redirect] weiter. Ich würde es aber so lassen, wie ich das vorgeschlagen hatte, also "http://www.SPACEart.info/Banner/Eigene", da das etwas flexibler ist, weil allgemeiner.
            Auf diese Art und Weise bist Du in Zukunft etwas freier, was diese Banner-Adresse angeht (man baut öfter um, als man denkt), außerdem ist sie leichter zu merken und last but not least passt sie auch logisch: Du willst ja nicht ein bestimmtes Banner, sondern eines von vielen aus diesem Verzeichnis - dann sollte da dementsprechend auch das Verzeichnis stehen, nicht eine Datei.
            Aber das nur als gut gemeinter Rat.

            Falls Du schon die Adresse ../SPACEart-W.gif im Umlauf hast, mußt Du natürlich doch noch den Redirect-Befehl benutzen. Neuen "Kunden" würde ich aber ausschließlich die Verzeichnisadresse geben.

            Gruß,
              soenk.e

            1. Lieber Soenke

              Nun habe ich nur noch eine Frage:
              Was genau muss ich die .htaccess schreiben, damit es auch beim Aufruf von
              http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
              funxt ?

              Da hilft Dir sicher [http://httpd.apache.org/docs/mod/mod_alias.html#redirect] weiter. Ich würde es aber so lassen, wie ich das vorgeschlagen hatte, also "http://www.SPACEart.info/Banner/Eigene", da das etwas flexibler ist, weil allgemeiner.
              Auf diese Art und Weise bist Du in Zukunft etwas freier, was diese Banner-Adresse angeht (man baut öfter um, als man denkt), außerdem ist sie leichter zu merken und last but not least passt sie auch logisch: Du willst ja nicht ein bestimmtes Banner, sondern eines von vielen aus diesem Verzeichnis - dann sollte da dementsprechend auch das Verzeichnis stehen, nicht eine Datei.
              Aber das nur als gut gemeinter Rat.

              OK, werd ich machen !

              Falls Du schon die Adresse ../SPACEart-W.gif im Umlauf hast, mußt Du natürlich doch noch den Redirect-Befehl benutzen. Neuen "Kunden" würde ich aber ausschließlich die Verzeichnisadresse geben.

              Genau das war der Grund :)
              Die SPACEart-W.gif-URL ist nämlich schon gut im Umlauf.
              Darum habe ich nun folgendes in die .htaccess eingetragen:
              RedirectMatch  permanent  /SPACEart-W.gif e/index.php
              Ist das richtig ?
              Es funxt jedenfalls ganz hervorragend !!

              Ganz viel lieben dollen Dank nochmal für Deine tolle Hilfe !!!

              Das unten angezeigte Banner wird übrigens schon per .htaccess-Redirect angezeigt :) (Relaode mal)

              Gruß aus Münster
              Ingo Siemon

              1. Darum habe ich nun folgendes in die .htaccess eingetragen:
                RedirectMatch  permanent  /SPACEart-W.gif e/index.php
                Ist das richtig ?

                Öhm, das sieht etwas verkrüppelt aus, und auf Deinem Server funktioniert's nicht.
                Wenn Dein Banner bisher nur unter http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif zu finden war, dann brauchst Du auch kein RedirectMatch, ein einfaches Redirect auf exakt diesen Pfad reicht schon.

                Schau nochmal in die Anleitung, das Beispiel unter Redirect finde ich eigentlich recht eindeutig ;)

                Gruß,
                  soenk.e

                1. Lieber Soenke

                  Öhm, das sieht etwas verkrüppelt aus, und auf Deinem Server funktioniert's nicht.

                  Ups, sorry, habe da wohl etwas geschlampt :)
                  Nun habe ich folgendes in die .htaccess geschrieben:
                  RedirectMatch SPACEart-W.gif index.php
                  Und das funxt nun auch ... oder ?

                  Wenn Dein Banner bisher nur unter http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif zu finden war, dann brauchst Du auch kein RedirectMatch, ein einfaches Redirect auf exakt diesen Pfad reicht schon.

                  Wenn ich
                  Redirect SPACEart-W.gif index.php
                  eintrage gehts nicht.

                  Gruß
                  Ingo

                  1. Hi Ingo,

                    Wenn Dein Banner bisher nur unter
                    http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
                    zu finden war, dann brauchst Du auch kein
                    RedirectMatch, ein einfaches Redirect auf exakt
                    diesen Pfad reicht schon.

                    Wenn ich
                    Redirect SPACEart-W.gif index.php
                    eintrage gehts nicht.

                    das ist auch nicht "exakt dieser Pfad", sondern nur ein Fetzen daraus (was dem "RedirectMatch" reicht, aber 'unschärfer' ist, weil derselbe Dateiname in allen Verzeichnissen gematched würde).

                    Viele Grüße
                          Michael
                    (der heimlich grinsend zusieht, wie Du Dir hier die Lösung zusammenbettelst ... immerhin formvollendet ...)

                    1. Wenn Dein Banner bisher nur unter
                      http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
                      zu finden war, dann brauchst Du auch kein
                      RedirectMatch, ein einfaches Redirect auf exakt
                      diesen Pfad reicht schon.

                      Wenn ich
                      Redirect SPACEart-W.gif index.php
                      eintrage gehts nicht.

                      Mmh, hatte ich nicht was von "tollem Beispiel" geschrieben? Mussudirauchmaldentextdurchlesenaufdenichdirhinweisentuntue.

                      das ist auch nicht "exakt dieser Pfad", sondern nur ein Fetzen daraus (was dem "RedirectMatch" reicht, aber 'unschärfer' ist, weil derselbe Dateiname in allen Verzeichnissen gematched würde).

                      Jaja, Hauptsache es matscht ;) Aber damit das heute noch was wird:

                      redirect permanent /Banner/Eigene/SPACEart-W.gif http://www.SPACEart.info/Banner/Eigene/

                      Viele Grüße
                            Michael
                      (der heimlich grinsend zusieht, wie Du Dir hier die Lösung zusammenbettelst ... immerhin formvollendet ...)

                      Gruß,
                        soenk.e (der heimlich grinsend darauf hofft, daß bald eine von den lustigen Puppen fällig ist;)

                      1. Lieber Sönke

                        Mmh, hatte ich nicht was von "tollem Beispiel" geschrieben? Mussudirauchmaldentextdurchlesenaufdenichdirhinweisentuntue.

                        Ist mit ja peinlich, aber da ich der englischen Sprache nicht so
                        ganz dolle mächtig bin, hatte ich schon schwierigkeiten
                        mit der genannten Seite klarzukommen :)

                        das ist auch nicht "exakt dieser Pfad", sondern nur ein Fetzen daraus (was dem "RedirectMatch" reicht, aber 'unschärfer' ist, weil derselbe Dateiname in allen Verzeichnissen gematched würde).

                        Jaja, Hauptsache es matscht ;) Aber damit das heute noch was wird:
                        redirect permanent /Banner/Eigene/SPACEart-W.gif http://www.SPACEart.info/Banner/Eigene/

                        Ick könnt Dir küssen :)

                        soenk.e (der heimlich grinsend darauf hofft, daß bald eine von den lustigen Puppen fällig ist;)

                        Yep, geht klar.
                        Im Ernst, such Dir eine von diesen hier aus:
                        http://www.spaceart.info/Artikel/c366.shtml
                        http://www.spaceart.info/Artikel/c394.shtml
                        http://www.spaceart.info/Artikel/c356.shtml

                        Ich bettle mir hier zwar die Lösung für meine Probleme zusammen :)
                        ... bin aber dann auch gerne Bereit, was springen zu lassen :)

                        Es sind aber Modell-Bausätze, die Du noch zusammenbauen und bemalen
                        musst. Und Deine Adresse brauche ich natürlich auch noch.

                        Gruß aus Münster
                        Ingo Siemon

                        1. Ist mit ja peinlich, aber da ich der englischen Sprache nicht so
                          ganz dolle mächtig bin, hatte ich schon schwierigkeiten
                          mit der genannten Seite klarzukommen :)

                          Hoppla, damit hatte ich nicht gerechnet, sorry .)

                          soenk.e (der heimlich grinsend darauf hofft, daß bald eine von den lustigen Puppen fällig ist;)

                          Yep, geht klar.

                          Naja, also für vier Kleckerzeilen Code kann ich das IMHO nicht annehmen. Und hier für Forumsaktivitäten sowieso nicht. Mal ganz zu schweigen davon, daß es bei meinen künstlerischen Fähigkeiten schade um die Figuren wäre :)
                          Trotzdem, ich weiß es zu schätzen, danke!

                          Gruß,
                            soenk.e

                          1. Lieber Sönke

                            Ist mit ja peinlich, aber da ich der englischen Sprache nicht so
                            ganz dolle mächtig bin, hatte ich schon schwierigkeiten
                            mit der genannten Seite klarzukommen :)

                            Hoppla, damit hatte ich nicht gerechnet, sorry .)

                            Tja, kannst mal sehn :))

                            soenk.e (der heimlich grinsend darauf hofft, daß bald eine von den lustigen Puppen fällig ist;)

                            Yep, geht klar.

                            Naja, also für vier Kleckerzeilen Code kann ich das IMHO nicht annehmen. Und hier für Forumsaktivitäten sowieso nicht. Mal ganz zu schweigen davon, daß es bei meinen künstlerischen Fähigkeiten schade um die Figuren wäre :)
                            Trotzdem, ich weiß es zu schätzen, danke!

                            Ok, machen wir es doch so:
                            Wenn ich wieder mal irgendwelche Script-Probleme habe, werde ich ja hier auch wieder posten.
                            Und wenn Du mir dann wieder helfen kannst, darfst Du mich gerne an mein Angebot erinnern.

                            OK ?

                            Gruß
                            Ingo

                    2. Lieber Michael

                      Wenn Dein Banner bisher nur unter
                      http://www.SPACEart.info/Banner/Eigene/SPACEart-W.gif
                      zu finden war, dann brauchst Du auch kein
                      RedirectMatch, ein einfaches Redirect auf exakt
                      diesen Pfad reicht schon.

                      Wenn ich
                      Redirect SPACEart-W.gif index.php
                      eintrage gehts nicht.

                      das ist auch nicht "exakt dieser Pfad", sondern nur ein Fetzen daraus (was dem "RedirectMatch" reicht, aber 'unschärfer' ist, weil derselbe Dateiname in allen Verzeichnissen gematched würde).

                      (der heimlich grinsend zusieht, wie Du Dir hier die Lösung zusammenbettelst ... immerhin formvollendet ...)

                      Tja, was soll man machen, wenn man keine Scroptsprache kann und von
                      Apache-Server-Konfiguration bisher auch ÜBERHAUPT keine Ahnung hatte.
                      Und wenn man (ist mir ja peinlich) der englischen Sprache auch nicht
                       so sehr mächtig ist, als dass man solche Internetseiten wirklich versteht :)

                      Aber ich Danke Euch natürlich ganz doll für Eure liebe Hilfe :))

                      Gruß aus Münster
                      Ingo Siemon

                      1. Hi Ingo,

                        Tja, was soll man machen, wenn man keine Scriptsprache kann und von
                        Apache-Server-Konfiguration bisher auch ÜBERHAUPT keine Ahnung hatte.

                        wie wäre es mit "lernen"?

                        Viele Grüße
                              Michael

                        1. Lieber Michael

                          Tja, was soll man machen, wenn man keine Scriptsprache kann und von
                          Apache-Server-Konfiguration bisher auch ÜBERHAUPT keine Ahnung hatte.

                          wie wäre es mit "lernen"?

                          Ich selber bin ja im Grunde kein Webdesigner,
                          sondern eher SciFi-Modell-Händler, der einfach nur gerne
                          seinen OnliseShop selber baut.

                          Leider habe ich nicht die Zeit, mit Pearl oder Ähnliches vernünftig anzueignen :)

                          Darum greife ich gerne auf Hilfe von Profis zurück.
                          Die ich übrigens auch gerne bezahle, wenns schwieriger wird !

                          Gruß
                          Ingo