Choose URIs wisely
Erwin
- design/layout
0 WauWau0 Erwin0 molily0 Tim Tepaße0 WauWau
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
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
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
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
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
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
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
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
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