Erwin: Choose URIs wisely

Hi,

siehe Betreff. Das is mir schon klar.

Aber.

Was nun, wenn die Navigation vermittels URI's gesteuert wird?
Ja und diese aus programmiertechnischen Gründen beispielsweise like http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10.2&id=4 lauten weil'se aus 'ner DB kommen?

Tja. Wie jetzt?

Viele Grüße, Rolf der Erwin

--
SELFforum - Das Tor zur Welt!
Theoretiker: Wie kommt das Kupfer in die Leitung?
Praktiker: Wie kommt der Strom in die Leitung?
  1. Hallo Erwin,

    siehe Betreff. Das is mir schon klar.

    soll das heißen: "Suche deine URI intelligent"? Also aussagekräftige Dateinamen/Ordnernamen verwenden oder wie?

    Was nun, wenn die Navigation vermittels URI's gesteuert wird?
    Ja und diese aus programmiertechnischen Gründen beispielsweise like http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10.2&id=4 lauten weil'se aus 'ner DB kommen?

    weiter beispiele wären CMS und vergleichbares, die Lösung liegt auf der Hand: Für CMS z.B. wäre es mod_rewrite, ein Apache-Modul zum Umschreiben von URIs, z.B. wird aus "deineseite.de/thema1/seite2.htm" dann "deinseite.de/cgi-bin/cms.pl?dir=thema1&site=seite2", oder kannst du auch deine Perlbase z.B. von "perlbase.xwolf.de/perlbase/10.2/" zu "perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10.2" weiterleiten lassen, usw.

    Wegen Scripten beispielsweise, die in cgi-bin-verzeichnissen stecken, kannst du eben scripten für alle verzeichnisse möglich machen, damit er dann eben alle ".cgi"-Dateien als Perlscripte ausführt, oder du nutzt eben dinge wie PHP, usw.

    und bei Query-Strings, die die welt unsicher machen (Sessions), muss man es eben hinnehmen, so schlimm sind sie auch nicht ;-)

    WauWau

    --
    ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
    WauWau E-Mail: coming soon
    1. hi,

      soll das heißen: "Suche deine URI intelligent"?

      Jo, ganz genau. Diese Empfehlung gibt w3.org  btw.

      Hmm.
      Nja, hmm.

      Ich werde das mal überratzen (schlafen). Denkbar ists ja, dass, wenn ich in der PerlBase was einfüge, das Script auch eine

      RewriteRule

      schreibt, z.B.,

      ein

      /CGI/Apache/Win32/Shebang

      --->

      http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10.3&id=1

      ... aber so richtig wohl fühle ich mich nicht dabei. Nicht dass ich nicht faul bin , aber irgendwie muss das ja einer hegen und pflegen...

      Viele Grüße, Rolf / Erwin

      --
      SELFforum - Das Tor zur Welt!
      Theoretiker: Wie kommt das Kupfer in die Leitung?
      Praktiker: Wie kommt der Strom in die Leitung?
      1. Hallo,

        Denkbar ists ja, dass, wenn ich in der PerlBase was einfüge, das Script auch eine

        RewriteRule

        schreibt, z.B.,

        ein

        /CGI/Apache/Win32/Shebang

        --->

        http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10.3&id=1

        ... aber so richtig wohl fühle ich mich nicht dabei. Nicht dass ich nicht faul bin , aber irgendwie muss das ja einer hegen und pflegen...

        mod_rewrite zu verwenden, heißt auch etwas anderes, als eine feste Liste von Aliasen zu verwalten, je einen bestimmten Pfad auf einen bestimmten anderen Pfad abbildet. Genauso wäre es wenig sinnig, wenn du /CGI/Apache/Win32/Shebang mit mod_rewrite auf /cgi-bin/perbase.cgi?/CGI/Apache/Win32/Shebang umschreiben würdest und in perlbase.cgi anhand einer Zuordnungsliste Pfad->Rubriknummer/Artikelnummer auf 10.3 und 1 kommen würdest, um darüber den Artikel aus der Datenbank zu holen, die Navigation zu generieren usw. Versuche, eine solche Übersetzung zu vermeiden, indem du es ermöglichst, über die eindeutigen Namen auf die Datenbankeinträge zuzugreifen. »CGI« wäre die ID für eine Rubrik, »Apache« die einer Unterrubrik usw., »Shebang« am Ende der URL wäre die ID für den Artikel. Das sollte doch möglich sein?

        Mathias

      2. Hallo Erwin,

        soll das heißen: "Suche deine URI intelligent"?
        Jo, ganz genau. Diese Empfehlung gibt w3.org  btw.

        Ich würde das aber als »Wähle URIs geschickt aus.« übersetzen. ;-)

        Das praktische haben Dir ja schon WauWau und molily erzählt, ich wollte
        Dir nur noch ein paar Artikelchen zum Thema auf den Weg geben, die sich
        hier angesammelt haben:

        http://www.w3.org/Provider/Style/URI
        http://www.useit.com/alertbox/990321.html
        http://www.alistapart.com/articles/succeed/
        http://www.alistapart.com/articles/urls/
        http://mpt.phrasewise.com/2003/07/26

        Tim

        1. Hallo Tim,

          http://www.w3.org/Provider/Style/URI
          http://www.useit.com/alertbox/990321.html
          http://www.alistapart.com/articles/succeed/
          http://www.alistapart.com/articles/urls/
          http://mpt.phrasewise.com/2003/07/26

          Ich habe mir doch nun mal tatsächlich die Arbeit gemacht, mich "durchzulesen". Ergebnis: Bei ihnen läuft es letztenendes 1. auf statische Inhalte hinaus, Erwin ging aber afaik von dynanmischen Dingen wie CGI und sowas aus, und 2. auf mod_rewrite von apache aus.

          Na zum letzteren hat sich Erwin ja nicht so freudig gezeigt... Aber wer zwingt ihn auch, dies so zu tun, er kann ja sowieso machen was er will ;-)

          -------------------------------------------------
              RewriteEngine On
              RewriteBase   /news
              RewriteRule   ^archiv(?:/?|/(\d{4})(?:/?|/(\d{1,2}|[^/]{3,10})(?:/?|/[^\d]*(\d+)[^\d]*)))$  "view_archiv.php?year=$1&month=$2&news=$3"
          -------------------------------------------------

          Cool, nicht wahr? Ich überlege nun nur noch über die korrekte implentierung dieser "schnittstelle" view_archiv.php. Immerhin soll sie ja nicht anzeigen, comments speichern, übersichtslisten und vieles anderes machen, dafür sind andere zuständig. Nur an die kann ich irgendwie schlecht die Übergebungsvariablen weiterreichen (POST wird einfach übergeben, das ist kein problem, an GET kommt man mithilfe desr folgenden einfachen Funktion ran:'parse_str(substr(strstr($_SERVER["REQUEST_URI"], "?"), 1), $GET);' Die Get-Variablen sind nun fensäüberlich aufgelistet in $GET gespeichert. In $_GET befindet sich ja schon die eigentlich angezeigt werden sollende Seite (z.B: "year=2004&month=5&news=" als ergebnis des Aufrufs von "/news/archiv/2004/5")

          jo, ist doch letztenendes gar nicht so kompliziert, mal rein von mod_rewrite gesehen.

          WauWau

          --
          ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
          WauWau E-Mail: coming soon
          1. Hallo WauWau,

            Ich habe mir doch nun mal tatsächlich die Arbeit gemacht, mich
            "durchzulesen". Ergebnis: Bei ihnen läuft es letztenendes 1. auf statische
            Inhalte hinaus, Erwin ging aber afaik von dynanmischen Dingen wie CGI und
            sowas aus, und 2. auf mod_rewrite von apache aus.

            Ich hatte diese Artikel zum generellen Thema der Benutzbarkeit von URIs
            verlinkt, weniger für die praktischen Hinweise als für die Gedanken, die
            man sich generell um URI-Design machen sollte. Dies schrieb ich ja auch.
            Allerdings scheinst Du nur quergelesen zu haben; zumindest die beiden
            A List Apart Artikel beschreiben natürlich mod_rewrite.

            Effektiv ist es auch wurst, was hinter der URI steckt, ob statisch oder
            dynamisch. Wobei ich bei Erwins Perlbase nicht wirklich verstehe, weswegen
            für statische, nichtveränderliche Artikel ein Skript herhalten muß.
            Wahrscheinlich ist es nur - sehr verständlich - aus Spaß an der Freude. ;-)

            jo, ist doch letztenendes gar nicht so kompliziert, mal rein von mod_rewrite
            gesehen.

            Wenn man weiß was man will und die RewriteRule passend hinbekommt, ja.

            Tim

            1. Mahlzeit,

              Danke für die Links!

              Effektiv ist es auch wurst, was hinter der URI steckt, ob statisch oder
              dynamisch. Wobei ich bei Erwins Perlbase nicht wirklich verstehe, weswegen
              für statische, nichtveränderliche Artikel ein Skript herhalten muß.

              Die PerlBase ist komplett dynamisch, da gibt es nicht eine einzige Htmldatei ;-)

              Der ganze Content wird per SQL aus einer Datenbank geholt und die Seiten erstellt ein PERLScript.

              Und somit ist auch die Navigation full-dynamite, dieses wird alles über eine Kontrollstruktur im Script gesteuert indem entsprechend der Parameter die jeweilige Funktion aufgerufen wird welche z.b. aus der Indextabelle ratzfatz das Inhaltsverzeichnis zaubert oder bei einem Klick auf ein Dokument dieses unzerknittert aus dem Blobfeld holt und dem Besucher zeigt....

              Wahrscheinlich ist es nur - sehr verständlich - aus Spaß an der Freude. ;-)

              Auf jeden Fall! Wenn ich mir das Teil heute angucke, sieht so richtig schnuckelig aus. An der Darstellung des Suchergebnisses muss ich noch ein bischen feilen...

              Viele Grüße, Rolf

              --
              SELFforum - Das Tor zur Welt!
              Theoretiker: Wie kommt das Kupfer in die Leitung?
              Praktiker: Wie kommt der Strom in die Leitung?
              1. Hallo Erwin, hallo Tim,

                Die PerlBase ist komplett dynamisch, da gibt es nicht eine einzige Htmldatei ;-)

                sowas ist doch schön zu hören :-)

                Der ganze Content wird per SQL aus einer Datenbank geholt und die Seiten erstellt ein PERLScript.

                noch viel besser :-))

                Und somit ist auch die Navigation full-dynamite, dieses wird alles über eine Kontrollstruktur im Script gesteuert indem entsprechend der Parameter die jeweilige Funktion aufgerufen wird welche z.b. aus der Indextabelle ratzfatz das Inhaltsverzeichnis zaubert oder bei einem Klick auf ein Dokument dieses unzerknittert aus dem Blobfeld holt und dem Besucher zeigt....

                es wird ja immer besser :-)))

                Wahrscheinlich ist es nur - sehr verständlich - aus Spaß an der Freude. ;-)

                jo, sowas zu hören ist doch echt nett :-)
                Ich muss glaube ich mal meine Vorliebe für so richtig volldynamische seiten zugeben. Wenn man sich mal meine schönen library-scriptchen für das Newssystem von projekt xyz anschaut, ist es doch richtig nett, kein fuzzibisschen von richtigem text zu lesen. Alles dynamisch zusammenzuschnippelen macht doch richtig spaß 8]]]

                Auf jeden Fall! Wenn ich mir das Teil heute angucke, sieht so richtig schnuckelig aus. An der Darstellung des Suchergebnisses muss ich noch ein bischen feilen...

                wie heißt die URI deiner Perlbase nochmal *willanschaun* ?

                WauWau

                --
                ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
                WauWau E-Mail: coming soon