Cool URIs don't change - aber was jetzt :)
suit
- software
2 Beat0 Timo0 Shadowcrow0 suit
0 Tim Tepaße2 danke für die antworten
suit- sonstiges
hallo,
ich hab aktuell eine seitenstrukur die einzig und allein durch ids bestimmt wird
example.com/?id=123
zwar ändern sich coole urls nicht, dennoch möchte ich eine entsprechende änderung durchführen
aussehen soll das ganze später so (eine dieser varianten):
mit dem umschreiben per mod_rewrite habe ich kein wirkliches problem
hat den vorteil, dass die logik sehr einfach ist, allerdings den nachteil, dass der titel nicht in der adresszeile ersichtlich ist - aus gründen der suchmaschinenfreundlichkeit ist das aber ein vorteil - ebenso ist es für einen normalen menschen einfacher einen artikel wiederzufinden (suche in der history zb)
hat den nachteil, das der titel eindeutig sein muss und dass ich zum permaneten umleiten auf die neuen urls ein script benötige, welches den titel kennt
3), 4) und 5) würden jeweils beides vereinen - allerdings ist bei 3) und 4) irgendwo visuell der titel bzw die id ein "unterverzeichnis" zu einer nummer
bei 5) selbst gefällt mir das trennzeichen zwischen id und titel nicht - angenommen der titel ist "08/15 - In der Heimat", damit wäre das titelfragemnt dann wohl "08-15-in-der-heimat", jetzt hat der artikel die id 7, also "7-08-15-in-der-heimat" - das sieht dann schon irgendwie komisch aus
ich bitte um vorschläge und meinungen :)
aussehen soll das ganze später so (eine dieser varianten):
- example.com/artikel/123
- example.com/artikel/titel-foo-bar
- example.com/artikel/123/titel-foo-bar
- example.com/artikel/titel-foo-bar/123
- example.com/artikel/123-titel-foo-bar
mit dem umschreiben per mod_rewrite habe ich kein wirkliches problem
- hat den vorteil, dass die logik sehr einfach ist, allerdings den nachteil, dass der titel nicht in der adresszeile ersichtlich ist - aus gründen der suchmaschinenfreundlichkeit ist das aber ein vorteil - ebenso ist es für einen normalen menschen einfacher einen artikel wiederzufinden (suche in der history zb)
Ehrlich gesagt halte ich nicht viel davon.
Ein Anwender sieht in den Bookmarks eher den Inhalt des title Elements. Er hat zudem noch andere Instrumente, neben welchen dein Anliegen für die Bookmarks irrekevant ist.
Im Location Bar sagt mir ein sprechender Titel auch nicht viel, weil ich solche Titel nicht eintippe. Sie werden zurückgegeben und meistens nehme ich sie nicht mal zur Kenntnis.
Aus der Sicht der Suchmaschine vernichtest du Information. id=123 stellt eine Logik dar. Deine Pseudopfade hingegen nicht.
Wenn ich eine Url eintippen muss, nehme ich die copy-Paste Funktion. Muss ich das wirklich händisch machen, dann ist bei einem sprechenden Titel der Schreibfehler eher noch wahrscheinlicher als bei einer vierstelligen Zahl.
Aber man kann auch das Prinzip automatischer anonymer SeitenIDs hinterfragen. Warum ist ein CMS nicht in der Lage, sprechende Seiten-IDs zu erzeugen, und Duplikate zu vermeiden, indem es vom Erzeuger die Angabe eines Identifikators verlangt? Schliesslich ist eine Seite ein Patch von kleinen Files, und das ganze stellt doch irgendwo ein zentrales Moment der Seiten-Erzeugung dar, dass man einen Seiten-Identifikator nebst einem Seitenlabel bestimmt. Zumindest handhabe ich es so im CMS das ich derzeit entwickle.
Analogie:
Ein User im Accountsystem hat ja auch einen einmaligen Namen (hoffentlich)[1] , derweil eine UserId als aussageloser Hash existiert, um den User mit seinen Rechten mit anderen Daten zu verbinden. Aber das wesentliche ist die Definition des Usernamens bei der Erstellung des Accounts.
[1] Ich will nicht das Risiko eingehen, dass zwei Personen sich mit gleichem Namen und Passwort anmelden. Das erlaubt mir aber nicht, dass der User den Namen 123 zu akzeptieren hätte, nur weil ich das schnell automatisch produzieren kann.
mfg Beat
Hi,
zwar ändern sich coole urls nicht, dennoch möchte ich eine entsprechende änderung durchführen
das ist bei meinen bescheidenen Englischkenntnissen sehr schwer zu lesen, aber vielleicht wäre dem auch so in deutsch. Ist in dem Artikel eine ernstzunehmende Begründung enthalten?
ich bitte um vorschläge und meinungen :)
Ich finde Urls nach Schema ?id=3234&xy=1223434 auch nicht besonders toll, aber nicht aus Suchmaschinengründen, sondern weil es eben wirklich schwer zu merken und auch schwer am Telefon zu übermitteln ist. Desweiteren verleitet sowas zu unerwünschten Spielereien(oder bin ich allein so böse;-), inden man die angehängten Parameter mal ein wenig verändert.
Andererseits habe ich deshalb mal mit mod_rewrite experimentiert und weiss nur noch das da Schwierigkeiten entstanden wie unnötige Serverbelastung, ungewolltes Verhalten in anderen Verzeichnissen und letztendlich für mich eine gewisse Unüberschaubarkeit der Struktur. Alle Probleme lagen vielleicht allein an meiner Unkenntnis, aber egal ich habs dann sein gelassen.
Sinn macht sowas für mich zb. extrem bei Seiten wie Wikipedia eben Lexika, Dictionarys usw...
Aber bei deinen Überlegungen fehlt noch ein Punkt. Sonderzeichen.
http://www.news.de/medien/1216757187529/virtuelle-reise-durch-den-koerper.html
Das geht noch aber:
http://de.wikipedia.org/wiki/Vuk_Stefanović_Karadžić
Vuk Stefanović Karadžić ist da schon schwieriger.
Timo
hi $name,
Ich finde Urls nach Schema ?id=3234&xy=1223434 auch nicht besonders toll, aber nicht aus Suchmaschinengründen, sondern weil es eben wirklich schwer zu merken und auch schwer am Telefon zu übermitteln ist. Desweiteren verleitet sowas zu unerwünschten Spielereien(oder bin ich allein so böse;-), inden man die angehängten Parameter mal ein wenig verändert.
aber nur wenn der verbrecher äh programmierer sich im geistigen tiefflug befunden hat :-) ich habe da eine nette sammlung von sripten, inkl. zugang zu 10 botnetzwerken....
gruss
shadow
das ist bei meinen bescheidenen Englischkenntnissen sehr schwer zu lesen, aber vielleicht wäre dem auch so in deutsch. Ist in dem Artikel eine ernstzunehmende Begründung enthalten?
das liegt nicht an deinem englisch - im artikel ist in der tat nicht viel verwertbares enthalten, darum bin ich nach lesen das artikels (und den les ich alle paar monate mal wieder) wieder nicht schlauer gewesen
er zeigt eben nur tipps auf, aber kein wirklich konkretes beispiel, welches mir in meinem fall weiterhilft - es läuft alles auf diese datumsgeschichte raus - und die sagt mir überhaupt nicht zu (autorenname oder sonstwas in einen "pfad" zu verpacken ist ja lt. dem artikel auch nicht schlau - warum das datum da besser sein soll, ist mir schleierhaft, besonders wenn sich ein artikel ändert und aktualisiert wird oder einfach umdatiert wird)
http://de.wikipedia.org/wiki/Vuk_Stefanović_Karadžić
Vuk Stefanović Karadžić ist da schon schwieriger.
das wird von meiner routine in vuk-stefanovic-karadzic konvertiert - das system ist zwar nicht das beste, da es zb bei kyrillischen oder chinesischen zeichen versagt, aber diese dinge können sogut wie unmöglich im titel vorkommen und wenn mal doch ein artikel zu "ソニー株式会社" kommt, lässt sich das auch in der transkripion in den titel bringen: "Sonī Kabushiki-gaisha" oder schlichtweg "Sony Corporation" ;)
Hallo,
ich bitte um vorschläge und meinungen :)
1. http://example.com/slug
2. http://example.com/article/slug
3. http://example.com/2009/slug
4. http://example.com/article/2009/slug
Numerische IDs fallen überall raus, einfach weil sie nicht intuitiv sind. Das gilt auch für Kombinationen. Automatisch generierte, eindeutige Identifizierer aus dem Titel des Artikels fallen raus, weil sie sehr lang werden können und man das Problem der Sonderzeichen in URIs hat. Wie Beat anmerkt sind diese auch schlecht weiter zu geben und wieder abzutippen. Am idealsten finde ich einen kleinen eindeutigen Identifizierer, der von einem Menschen gewählt wird, der dabei auf Mnemonik und Kürze achtet. Zum Beispiel dem hypothetischen Artikel mit dem Titel "Grand Theft Auto IV: »Lieber Gothic III in der Verkaufsversion«" würde ich den kurzen Identifizier "gta4-drm" geben. Das Beispiel ist hier zugegebenerweise etwas Abkürzungslastig, sonst wäre es ein normales Wort.
Meine Präferenzen zum Unterbringen des Kürzels sind oben. Ich liebäugel sehr mit einem flachen Namensraum wie in den Vorschlägen 1 und 3. Wenn das ganze aber nur ein Teilbereich unter der Domain ist, wird das eher schwierig beim Mixen mit anderen Teilbereichen. Vorschläge 2 bis 4 haben das Problem eher nicht, 2 und 4 haben wirklich einen abgetrennten Namensraum. Vorschläge 3 und 4 haben zusätzlich noch die Jahreszahl, falls man soviel publiziert, dass einem die Artikelkürzel ausgehen. Dabei wäre dann die Jahreszahl Bestandteil der eindeutigen Identifizierung.
Tim
Beispiel dem hypothetischen Artikel mit dem Titel "Grand Theft Auto IV: »Lieber Gothic III in der Verkaufsversion«" würde ich den kurzen Identifizier "gta4-drm" geben.
was spricht dann gegen eine zusätzliche nummerische identifikation?
meinetwegen ich habe 3 artikel zu grand theft auto iv
ob ich die jetzt "grand-theft-auto-4-foo, grand-theft-auto-4-bar, grand-theft-auto-4-baz" oder "grand-theft-auto-4-1, grand-theft-auto-4-2, grand-theft-auto-4-3" oder "27-grand-theft-auto-4, 85-grand-theft-auto-4, 147-grand-theft-auto-4" ist doch beides recht eindeutig
der vorteil an der letzteren variante ist, dass das identifikationsmerkmal die id aus der datenbank ist und auch bei einer titeländerung der artikel noch eindeutig gefunden werden kann ohne dass ich mir sämtliche alten slugs irgendwo in der datenbank vorhalten muss, sollte sich der artikel dochmal ändern - zb wenn etwas umbenannt wird
sprich, ich kann jemandem sagen "example.com/foo/27" und es reicht - ob er dann eine der folgenden varianten eingibt, ist egal
example.com/foo/27
example.com/foo/27-gta-4
example.com/foo/27-grand-theft-auto-4
example.com/foo/27-grand-theft-auto-4-mit-untertitel
example.com/foo/27-grnd-heft-auto-4
example.com/foo/27-irgendeinbullshit
Moin,
was spricht dann gegen eine zusätzliche nummerische identifikation?
Die von Tim schon erwähnte Mnemonik. Du baust aus eigener Bequemlichkeit in deinen URL eine für den Empfänger assoziations- und bedeutungslose Zahl ein, weil "früher" diese zufällige Zahl (nur) für Dich ein Sinn ergab. Mensch muss sich anstrengen, um solche Zahlen zu merken. Sicher kann man einwenden, dass Links vielleicht eher selten mündlich weitergegeben oder händisch eingetippt werden. Aber aus dem Blickwinkel der Kundenorientierung reicht auch der seltene Fall aus. Und in diesen Fällen steht die Zahl nun mal dem Besucher im Weg, ist für ihn sinnlos und damit unnötiger Ballast.
Grüße
Swen
Und in diesen Fällen steht die Zahl nun mal dem Besucher im Weg, ist für ihn sinnlos und damit unnötiger Ballast.
wie unterscheide ich dann zwei exakt gleich titel voneinander?
Moin,
wie unterscheide ich dann zwei exakt gleich titel voneinander?
Nicht der Absender, sondern der Besucher soll die auseinanderhalten bzw. erinnern. Die verwendete Technik zur Unterscheidung muss ins Gesamtgefüge Deiner URL-Grammatik einpassen und einen Sinn geben. Das können Monats- oder Jahreszahlen sein. Das mag auch ein schlichter Zähler sein (example.com/foo/gta4-I, example.com/foo/gta-4-II, example.com/foo/gta-4-III ... oder Buchstaben oder Ziffern ...) oder eine inhaltlicher Hinweis. Das Ansatzpunkt ist die bisherige Benamungslogik, die zu der Dopplung führt. Und: es gibt sicher viele richtige Antworten bzw. Lösungen.
Grüße
Swen
Das mag auch ein schlichter Zähler sein (example.com/foo/gta4-I, example.com/foo/gta-4-II, example.com/foo/gta-4-III ... oder Buchstaben oder Ziffern ...) oder eine inhaltlicher Hinweis.
insbesondere hier ist es ja eben (wenn die benennung für den besucher sein soll) verwirrend
gta-iv-ii
gta-iv-ii
gta-iv-iii
gta-iv-iv
das verwirrt doch etwas :D
Das Ansatzpunkt ist die bisherige Benamungslogik, die zu der Dopplung führt. Und: es gibt sicher viele richtige Antworten bzw. Lösungen.
darum hätte ich eben gedacht, die bisherige id zu verwenden (wenn diese für den besucher ohnein nicht ausschlaggebend ist) - siehe zb youtube, über die kryptischen film-ids beklagt sich auch nicht wirklich jemand
dass der titel eben noch zusätzlich in der adresszeile steht, erachte ich eben als hilfe und nicht als eindeutiges identifikationsmerkmal
in meinem fall ist es so, dass zu einem titel teilweise sehr viele dinge geschrieben wurden - das liegt nicht daran, dass das benamungsschema schlecht ist, sondern schlichtweg dass zu exakt dem selben thema artikel verschiedener autoren vorliegen (oder auch vom selben)
es gibt titel, die kommen durchaus über 100x vor (der regelfall sind etwa 2 bis 3 artikel pro titel, aber es gibt doch einige krasse ausreisser - ab etwa 10 bis 15 artikel aufwärts
und ob da jetzt titel-foo-bar-1 bis -100 steht oder 823- bis 1723 mit löchern dazwischen dürfte für den besucher weniger relevant sein
Moin.
in meinem fall ist es so, dass zu einem titel teilweise sehr viele dinge geschrieben wurden - das liegt nicht daran, dass das benamungsschema schlecht ist, sondern schlichtweg dass zu exakt dem selben thema artikel verschiedener autoren vorliegen (oder auch vom selben)
Warum dann nicht die Autoren in den URI einbauen? Bei mehreren Artikeln gleichen Titels und Autors eventuell noch das Datum hinzufügen...
Christoph
Warum dann nicht die Autoren in den URI einbauen? Bei mehreren Artikeln gleichen Titels und Autors eventuell noch das Datum hinzufügen...
es kommt durchaus vor, dass der selbe autor mehrer artikel zum selben titel am selben tag schreibt oder dass der autor wechselt bzw es ergänzungen durch andere autoren gibt
damit wären wir wieder bei sich ändernden links die ich sogut es geht vermeiden möchte
Hellihello
die frage ist doch, wie weit du den timestamp "auffächerst".
gleicher tag, ja.
gleiche stunde, auch.
gleiche sekunde, nö.
amazon vergibt "speaking urls" (ganz lange) für die sumas, was intern aber zählt, ist die amazon-id bzw. die isbn (weissnichtgenau).
Dank und Gruß,
Hallo,
der vorteil an der letzteren variante ist, dass das identifikationsmerkmal die id aus der datenbank ist und auch bei einer titeländerung der artikel noch eindeutig gefunden werden kann ohne dass ich mir sämtliche alten slugs irgendwo in der datenbank vorhalten muss, sollte sich der artikel dochmal ändern - zb wenn etwas umbenannt wird
Einfach nur meine Abneigung gegen Zahlen als Identifikationsmerkmal, ein eindeutiger Slug funktioniert genauso. Dass bei einer möglichen Änderung des Slugs wie bei einem Vertipper dieser geändert wird ... nun ja. Im Normalfall ein wirklicher Grenzfall, den man vernachlässigen kann, finde ich. Ein zusätzliche Tabelle wäre aber auch kein Beinbruch. Man könnte sogar darüber nachdenken, damit gleich ein Versionierungssystem zu kriegen. Noch etwas Abstraktion und man ist bei Wikipedias DB-Schema. ;)
Tim
Einfach nur meine Abneigung gegen Zahlen als Identifikationsmerkmal, ein eindeutiger Slug funktioniert genauso.
wie in einem post weiter unten erwähnt: die titel sind nicht eindeutig, dh man muss exakt gleiche titel/slugs durch irgendwas unterscheiden
Man könnte sogar darüber nachdenken, damit gleich ein Versionierungssystem zu kriegen.
ist bereits in arbeit ;)
Noch etwas Abstraktion und man ist bei Wikipedias DB-Schema. ;)
das wird noch etwas dauern, aktuell sinds in diesem fall 11 tabellen :)
Hi,
meinetwegen ich habe 3 artikel zu grand theft auto iv
Dann nummeriere diese fortlaufend.
ob ich die jetzt "grand-theft-auto-4-foo, grand-theft-auto-4-bar, grand-theft-auto-4-baz" oder "grand-theft-auto-4-1, grand-theft-auto-4-2, grand-theft-auto-4-3" oder "27-grand-theft-auto-4, 85-grand-theft-auto-4, 147-grand-theft-auto-4" ist doch beides recht eindeutig
Nein, bei 27-, 85-, 147- bringst du wieder eine Datensatz-ID mit hinein, die mich als Besucher ueberhaupt nicht interessiert.
Ausserdem frage ich mich da, wo denn 1-grand-theft-auto-4 bis 26-grand-theft-auto-4, 28-grand-theft-auto-4 bis ... etc. geblieben sind? Wie, die gab's gar nicht? Dann verstehe ich als Benutzer diese Art der "Nummerierung" ja gleich noch weniger.
gta4_I, gta4_II, gta4_III, oder meinetwegen auch gta4_part6 oder gta4_teil7 - damit kann ich als Nutzer etwas anfangen. Das suggeriert mit auch gleich, dass es noch weitere Artikel gibt, die sich um das gleiche Thema drehen und mich vielleicht auch interessieren koennten.
MfG ChrisB
nach reichlicher überlegung werde ich jetzt diese variante wählen:
- example.com/artikel/titel-foo-bar
bei identischen titeln wird halt ein suffix angehängt, eine fortlaufende nummer zu erzeugen is kein thema
der vorschlag von chrisb mit dem "part1", "part1" usw gefällt mir auch ganz gut - einige artikel gibts durchaus als zusammengehörige teile/serien
ich muss das jedenfalls nochmal setzen lasen, danke jedenfalls für die zahlreichen meinungen
---
btw: eigentlich wollte ich das in "sonstiges" posten ;)
Moin.
Was auch noch eine Möglichkeit wäre: Du interpretiert die URI als eine Art Suchanfrage, die mit /
verschiedene Teilanfragen oder-verknüpft.
Teilanfragen der Art 2009
, 2009-01
, 2009-01-29
werden als Datumsangaben interpretiert, alles andere als Schlüsselworte für die Suche in Autoren- und Titelbezeichnungen.
Ein Beispiel:
/christoph/suit/2008-12/2009-01/aber-was-jetzt
findet alle Artikel von Dezember 2008 oder Januar 2009, mit Autoren- oder Titelbezeichnung "christoph" oder "suit" oder "aber was jetzt".
Erzielt die Anfrage mehrere Treffer, gib einfach alle in einer Liste aus...
Christoph
PS: Zu schnell auf Absenden geklickt :(
Datumsangaben sollten oder-verknüpft werden, die Teilanfragen aber ansonsten und-verknüpft.
Das Beispiel
/christoph/suit/2008-12/2009-01/aber-was-jetzt
wird also als
((year == 2008 && month == 12) || (year == 2009 && month == 01)) &&
(author == "christoph" || title == "christoph") &&
(author == "suit" || title == "suit") &&
(author == "aber was jetzt" || title == "aber was jetzt")
interpretiert...
das würde aber mein problem mit den nicht veränderbaren urls nicht lösen und ggf bei einer url zu mehreren treffern führen
die suche selbst hat ja damit nix zu tun - die soll gefälligst mit post arbeiten :)