Christoph Schnauß: komplexen Alias bauen

hallo Forum,

ich habe für ein "Projekt" einen Alias für ein Grafikverzeichnis definiert, was derzeit so aussieht:

Alias /grafik "var/www/projekt/grafik"

Das funktioniert natürlich - allerdings nur dann, wenn ich http://www.projekt.test/grafik als URL für die dort untergebrachten Icons und Grafiken verwende.
Jetzt müssen es aber solche URLs werden: http://www.projekt.test/blog/[zahl]/grafik, wobei [zahl] eine beliebige zwei- bis fünfstellige Ziffernfolge sein kann. Das Grafikverzeichnis soll immer dasselbe bleiben, und da funktioniert so ein Alias natürlich nicht mehr. Es liegt bzw. lag die Versuchung nahe, es so zu probieren:

AliasMatch /blog/([0-9]+)/grafik "var/www/projekt/grafik"

Damit fällt man aber auf die Nase. Die Apache-Doku gibt dazu leider nichts her, mein Freund Google leider auch nicht.

Wie macht man es dann funktionsfähig?

Grüße aus Berlin

Christoph S.

--
Visitenkarte
ss:| zu:) ls:& fo:) va:) sh:| rl:|
  1. Hi,

    wie wäre es mit URL Rewriting? Apache + mod_rewrite quasi, hab mal gehört, dass es sowas gibt :)

    Ciao, Frank

    1. hallo,

      wie wäre es mit URL Rewriting? Apache + mod_rewrite quasi, hab mal gehört, dass es sowas gibt :)

      Was du alles hörst ... Wenn du auf so etwas Ähnliches anspielen solltest wie:
         RewriteRule ^blog/([0-9]+)/grafik  /grafik
      so funktioniert das bedauerlicherweise auch nicht, auch in diversen Varianten nicht. Allerdings wäre mir eine Alias-Lösung deutlich lieber.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Moin!

        hallo,

        wie wäre es mit URL Rewriting? Apache + mod_rewrite quasi, hab mal gehört, dass es sowas gibt :)

        Was du alles hörst ... Wenn du auf so etwas Ähnliches anspielen solltest wie:
           RewriteRule ^blog/([0-9]+)/grafik  /grafik
        so funktioniert das bedauerlicherweise auch nicht, auch in diversen Varianten nicht. Allerdings wäre mir eine Alias-Lösung deutlich lieber.

        Zwei Anmerkungen:

        1. Die Alias-Direktive hat die Aufgabe, abweichend vom realen Dateisystem, welches 1:1 in den URL-Namensbereich gemappt wird, Umsortierungen vorzunehmen und beispielsweise Verzeichnisse außerhalb des DOCUMENT_ROOT als zusätzlichen URL-Verzeichnisbereich einzubinden. Das, was du willst, ist hingegen das Mapping von variablen URLs zu anderen URLs. Und dafür gibts u.a. mor_rewrite.

        2. "Funktioniert nicht" funktioniert nicht. Aber das kennst du ja schon. Oder klaut wieder jemand deinen Namen? Kann mir nicht vorstellen, warum ein erfahrener Forumsnutzer die einfachsten Regeln der Problembeschreibung nicht hinkriegt.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. hallo Sven,

          dafür gibts u.a. mor_rewrite.

          Das kann ich bei mir erstmal einsetzen, aber später beim "Kunden" nicht mehr. Da gibt es zwar einen Vertrauensbonus, was die Verwendung einer Alias-Lösung angeht (die ist in .htaccess bekanntlich nicht zulässig), mehr aber leider nicht. Das heißt, ich muß mit den Modulen auskommen, die vorhanden sind. mod_rewrite ist vorhanden.

          1. "Funktioniert nicht" funktioniert nicht. Aber das kennst du ja schon. Oder klaut wieder jemand deinen Namen?

          Nein, hier nicht - also ich bins selber. Aber was nutzt es, wenn ich eine Fehlermeldung "File does not exist" aus der error_log herschreibe? Mehr gibts nicht, egal, wie hoch ich den "LogLevel" einstelle.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Hallo Christoph.

            dafür gibts u.a. mor_rewrite.

            Das kann ich bei mir erstmal einsetzen, aber später beim "Kunden" nicht mehr.

            → mod_rewrite ist nicht vorhanden

            Da gibt es zwar einen Vertrauensbonus, was die Verwendung einer Alias-Lösung angeht (die ist in .htaccess bekanntlich nicht zulässig), mehr aber leider nicht. Das heißt, ich muß mit den Modulen auskommen, die vorhanden sind. mod_rewrite ist vorhanden.

            → mod_rewrite ist vorhanden

            Was denn nun?

            1. "Funktioniert nicht" funktioniert nicht. Aber das kennst du ja schon. Oder klaut wieder jemand deinen Namen?

            Nein, hier nicht - also ich bins selber. Aber was nutzt es, wenn ich eine Fehlermeldung "File does not exist" aus der error_log herschreibe? Mehr gibts nicht, egal, wie hoch ich den "LogLevel" einstelle.

            Dir ist sicher bewusst, dass Sven wohl eher vom RewriteLog sprach …

            Einen schönen Dienstag noch.

            Gruß, Mathias

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules
            1. hi,

              Dir ist sicher bewusst, dass Sven wohl eher vom RewriteLog sprach

              Da steht bloß überhaupt nichts drin. Keine Sorge: wenn ich in _irgendeinem_ log was finden würde, hätte ich ja erstmal selber einen Anhaltspunkt und wüßte vermutlich schon weiter.

              Im übrigen hat Sven "mor_rewrite" zumindest in diesem Forum mal vor rund fünf Jahren erfunden, daher die Anmerkung, ich könne mir dieses seltene, kaum dokumentierte, aber überaus kostbare Modul zwar hier zuhause einbauen, es später aber nicht nutzen lassen.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Dir ist sicher bewusst, dass Sven wohl eher vom RewriteLog sprach

                Da steht bloß überhaupt nichts drin. [...]

                Hast Du in Deiner httpd.conf eine Logdatei für das Rewrite-Modul
                initialisiert? Es müssen gegebenenfalls manuell Pfad und Sensitivität
                eingestellt werden:

                RewriteLog Pfad_zur_log-Datei
                RewriteLogLevel 5 # Wert zw. 2 und 5 ist mMn sinnvoll

              2. Hi,

                Im übrigen hat Sven "mor_rewrite" zumindest in diesem Forum mal vor rund fünf Jahren erfunden, daher die Anmerkung, ich könne mir dieses seltene, kaum dokumentierte, aber überaus kostbare Modul zwar hier zuhause einbauen, es später aber nicht nutzen lassen.

                Das ist doch wohl nicht wahr, oder? Du als Fragender gehst nicht auf den, m.E. zielführenden, Ratschlag ein, sondern weist Sven lieber zurecht, noch dazu in einer ziemlich fragwürdigenden Art und Weise? Reichlich unverschämt, findest du nicht?

                Gruß,
                Andreas.

                1. hallo,

                  Du als Fragender gehst nicht auf den, m.E. zielführenden, Ratschlag ein

                  "zielführend" war der Hinweis, daß es mod_rewrite ja auch gibt. Ich hatte aber bereits weiter oben im Thread erkennen lassen, daß ich das durchaus bereits probiert habe (und auch, wie ich es probiert habe), freilich ohne daß es "funktioniert" hätte; insofern war/ist mir dieses "Ziel" bereits bekannt, so daß es eines Hinweises, daß es ja mod_rewrite gibt, eigentlich nicht bedurft hätte. Mehr hat Sven nicht ausgesagt. Ich bedaure lebhaft, dieses "nicht funktioniert" in keiner Weise belegen zu können, ich habe keinerlei verwertbaren log-Eintrag.

                  sondern weist Sven lieber zurecht

                  Ich wüßte nicht, wo und wie ich das getan haben sollte. Nur habe ich den Eindruck, als hättest du dir nicht den gesamten Thread angeschaut.

                  Grüße aus Berlin

                  Christoph S.

                  --
                  Visitenkarte
                  ss:| zu:) ls:& fo:) va:) sh:| rl:|
                  1. Hi Christoph,

                    "zielführend" war der Hinweis, daß es mod_rewrite ja auch gibt.

                    aus diesem Absatz

                    1. Die Alias-Direktive hat die Aufgabe, abweichend vom realen Dateisystem, welches 1:1 in den URL-Namensbereich gemappt wird, Umsortierungen vorzunehmen und beispielsweise Verzeichnisse außerhalb des DOCUMENT_ROOT als zusätzlichen URL-Verzeichnisbereich einzubinden. Das, was du willst, ist hingegen das Mapping von variablen URLs zu anderen URLs. Und dafür gibts u.a. mor_rewrite.

                    kann ich beim besten Willen keinen Hinweis darauf finden, "daß es mod_rewrite ja auch gibt", sondern vielmehr den, dass - und warum - dein Vorhaben mit mod_rewrite zu lösen ist, nicht aber mit mod_alias, wie du es dir wünschst. Ich nenne das zielführend.

                    Ich hatte aber bereits weiter oben im Thread erkennen lassen, daß ich das durchaus bereits probiert habe (und auch, wie ich es probiert habe), freilich ohne daß es "funktioniert" hätte;

                    also hast du vermutlich etwas falsch gemacht!? Das ist nicht schlimm und lässt sich mit Sicherheit korrigieren.

                    insofern war/ist mir dieses "Ziel" bereits bekannt, so daß es eines Hinweises, daß es ja mod_rewrite gibt, eigentlich nicht bedurft hätte.

                    s.o.

                    Ich bedaure lebhaft, dieses "nicht funktioniert" in keiner Weise belegen zu können, ich habe keinerlei verwertbaren log-Eintrag.

                    du hast mod_rewrite mit der von dir in https://forum.selfhtml.org/?t=152752&m=993617 genannten RewriteRule ausprobiert. Dass du einen "File does not exist" im error_log bekommen hast, hast du jedoch im Posting vor Svens verschwiegen. Auch welches "File" das denn ist, das da vergeblich versucht wird auszuliefern, hast du bisher verschwiegen, obwohl diese Information doch auch im error_log zu finden sein dürfte [1]?! Ich nenne dies eine "mangelhafte Problembeschreibung".

                    sondern weist Sven lieber zurecht

                    Ich wüßte nicht, wo und wie ich das getan haben sollte.

                    naja, m.E. indirekt durch deine Ausführung über das nicht vorhandene Modul "mor_rewrite". Vielleicht bin ich ja der Einzige, der dies so sieht. Aber Mathias hast du dadurch ebenfalls auf eine falsche Fährte gelockt. Ob er oder Sven dir bei diesem Problem noch helfen möchten? Ich weiß es nicht.

                    Nur habe ich den Eindruck, als hättest du dir nicht den gesamten Thread angeschaut.

                    Unsinn. Wie kommst du darauf?

                    Gruß,
                    Andreas.

                    [1] aus diesen beiden Informationen, zusammen mit der Information, dass du im rewrite_log nichts gefunden hast, können mod_rewrite-firme Personen mit Sicherheit einiges herauslesen.

                    1. hallo,

                      aus diesem Absatz

                      [...] Und dafür gibts u.a. mor_rewrite.
                      kann ich beim besten Willen keinen Hinweis darauf finden, "daß es mod_rewrite ja auch gibt"

                      "u.a." kann man mit "auch" näherungsweise gleichsetzen.

                      sondern vielmehr den, dass - und warum - dein Vorhaben mit mod_rewrite zu lösen ist, nicht aber mit mod_alias, wie du es dir wünschst. Ich nenne das zielführend.

                      Ich nicht, da ein Beispiel, das die Bekanntschaft mit diesem "Ziel" benennt, bereits genannt und sogar mit einem Beispiel belegt wurde. Zielführend wäre gewesen, einen Vorschlag zum Umgang mit mod_rewrite zu machen und zu zeigen, wie es denn geht (falls es geht).

                      also hast du vermutlich etwas falsch gemacht!? Das ist nicht schlimm und lässt sich mit Sicherheit korrigieren.

                      Bitte. Und wie lautet dein Korrekturvorshlag?

                      du hast mod_rewrite mit der von dir in https://forum.selfhtml.org/?t=152752&m=993617 genannten RewriteRule ausprobiert.

                      Nicht nur damit, sondern mit mehreren Varianten, die allerdings alle ungefähr auf derselben Herangehensweise beruhen.

                      Dass du einen "File does not exist" im error_log bekommen hast, hast du jedoch im Posting vor Svens verschwiegen.

                      Weil das so gut wie keine Aussagekraft hat bzw. dasselbe aussagt wie "funktioniert nicht".

                      Auch welches "File" das denn ist, das da vergeblich versucht wird auszuliefern, hast du bisher verschwiegen

                      Schau dir das angeführte Beispiel nochmal an. Es geht nicht um ein einzelnes "File", sondern um ein ganzes Verzeichnis, das mehrere Grafikdateien enthalten kann.

                      obwohl diese Information doch auch im error_log zu finden sein dürfte [1]?

                      Das Error_log sagt: "File does not exist", und das access_log meldet für den versuchten Zugriff einen 404er. rewrite_log, das es selbstverständlich gibt, sagt gar nichts.

                      Ich nenne dies eine "mangelhafte Problembeschreibung".

                      Das steht dir frei.

                      [1] aus diesen beiden Informationen, zusammen mit der Information, dass du im rewrite_log nichts gefunden hast, können mod_rewrite-firme Personen mit Sicherheit einiges herauslesen.

                      Aus der einzig verfügbaren Information "File does not exist" kann niemsnd etwas herauslesen bis auf die Tatsache, daß ich grade ein Problem habe.

                      Grüße aus Berlin

                      Christoph S.

                      --
                      Visitenkarte
                      ss:| zu:) ls:& fo:) va:) sh:| rl:|
                      1. Hi Christoph,

                        [...] Und dafür gibts u.a. mor_rewrite.
                        kann ich beim besten Willen keinen Hinweis darauf finden, "daß es mod_rewrite ja auch gibt"

                        "u.a." kann man mit "auch" näherungsweise gleichsetzen.

                        Aber die beiden Schnipsel haben eine völlig verschiedene Bedeutung. Dass mod_rewrite das richtige Mittel für dein Vorhaben ist, sagt "daß es mod_rewrite ja auch gibt" nämlich nicht aus. "Und dafür gibts u.a. mor_rewrite" i.V.m. dem vorhergehenden Satz dagegen sehr wohl.

                        Ich nicht, da ein Beispiel, das die Bekanntschaft mit diesem "Ziel" benennt, bereits genannt und sogar mit einem Beispiel belegt wurde. Zielführend wäre gewesen, einen Vorschlag zum Umgang mit mod_rewrite zu machen und zu zeigen, wie es denn geht (falls es geht).

                        was spricht dagegen, erstmal deinen nicht funktionierenden Versuch zu analysieren und zu schauen, woran es hapert? Dazu hättest du aber halt noch Informationen nachliefern müssen, was Sven ja auch in seiner Anmerkung geschrrieben hat.

                        also hast du vermutlich etwas falsch gemacht!? Das ist nicht schlimm und lässt sich mit Sicherheit korrigieren.

                        Bitte. Und wie lautet dein Korrekturvorshlag?

                        Ich habe keinen "Korrekturvorshlag".

                        Dass du einen "File does not exist" im error_log bekommen hast, hast du jedoch im Posting vor Svens verschwiegen.

                        Weil das so gut wie keine Aussagekraft hat bzw. dasselbe aussagt wie "funktioniert nicht".

                        Unsinn. Das eine sagt aus, dass eine Datei, die, mit oder ohne Umschreibung der URL, ausgeliefert werden soll, nicht exisiert. Das andere sagt gar nichts aus.

                        Das Error_log sagt: "File does not exist", und das access_log meldet für den versuchten Zugriff einen 404er. rewrite_log, das es selbstverständlich gibt, sagt gar nichts.

                        Du willst also behaupten, ...

                        • die Information, dass Ressource X nicht ausgeliefert werden konnte (das access_log meldet für den versuchten Zugriff einen 404er),
                        • weil eine Datei nicht existiert (Das Error_log sagt: "File does not exist"),
                        • wobei (wahrscheinlich) keine Umschreibung der URL stattgefunden hat ("rewrite_log, das es selbstverständlich gibt, sagt gar nichts")

                        für die Problemlösung, warum der mod_rewrite-Versuch nicht funktioniert hat, irrelevant ist?

                        Gruß,
                        Andreas.