mod_rewrite haben eh alle 19. September 2005 um 20:18 Uhr / Webdesign
mod_rewrite nutzt einen Parser, der anhand von regulären Ausdrücken die angeforderte URL umschreibt.
Aus
http://example.org/2005/09/mod-rewrite
wird intern:
http://example.org/index.php?jahr=2005&monat=09&titel=mod-rewrite
Ich nutze das schon seit … immer? Damit sind die URLs schön aufgeräumt und für den Besucher auch gut nachvollziehbar dargestellt. Da mir das so gut gefallen hat, habe ich so etwas auch in Jlog eingesetzt.
Nun nutzen schon ein paar Leute Jlog – auch wenn es noch eine Beta Version ist. Ich habe mir die Seiten, die ich über meine Referer gefunden hatte, angeschaut und habe mit großem erstaunen festgestellt, dass keiner von ihnen die Variante der »sauberen« URLs nutzt, also auch kein mod_rewrite nutzt. Ich habe also direkt bei den Betreibern nachgefragt und undgefähr solche Antworten bekommen:
Diese Seite wird von Host Europe gehostet. Mein Webpack M erlaubt keine Änderung der .htaccess. Ich darf nur Error-Pages anlegen. Das htaccess-Feature (so nennt sich dies bei Host Europe) gibt es erst beim WebPack L und das ist doppelt so teuer.
Ne, mod_rewrite scheint nicht erlaubt zu sein. Das sind aber auch ein paar honqs. Die kriegen so einiges nicht gebacken.
Ist das wirklich so außergewöhnlich, dass man mod_rewrite vom Provider aus nutzen kann? Ich dachte eigentlich, dass das mittlerweile zum guten Standard gehört, aber anscheinen habe ich mich geirrt. Deshalb bin ich schon am überlegen wie ich diese ewig lange URL irgendwie abkürzen kann. Leider fällt mir dazu nur eine sinnvolle Alternative, umsteigen auf eine ID–Nummer, anstatt den ganzen Informationen über Datum und Titel der Seite, was aber leider sehr viele Informationen aus den URLs herausnehmen würde.
Oder ist es doch besser so wie es jetzt ist, also mit dem ganzen Rattenschwanz hintendran? Was meint ihr? Vielleicht ist es dem Nutzer auch völlig egal?
Kommentare
Die Kommentare sind für diesen Eintrag geschlossen.
blogerich schrieb am 19.09.2005
Ich würde gerne eine kurze URL haben. Noch habe ich meinem Hoster nicht gefragt, doch wie ich in seinem Forum gelesen habe ist es durchaus möglich sowas frei zu schalten. Werde ihn mal fragen.
rico aus dresden schrieb am 19.09.2005
wrtlprnft schrieb am 20.09.2005
Jeena Paradies aus Varberg schrieb am 20.09.2005
Alexander, wo du recht hast, hast du recht. Doch den Aufwand das jetzt im Nachhinein zu implementieren scheue ich noch. Einen Nachteil gibt es noch, die Datenredundanz. Es gibt die Daten dann zwei mal, 1. in der Datenbank und 2. in den einzelnen HTML Dateien. Dann noch ein Nachteil, wenn man irgendeine Kleinigkeit am Template ändert, muss man alle einträge neu bauen lassen. Das kann bei langsammeren Servern schon einige Zeit kosten, so dass man bei umfangreichen Weblogs an die Grenzen der Ausführungszeit von PHP kommt. Da hatten einige User von Movable Type schon ihre Schwierigkeiten.
Rico, es geht nicht hier um die Seite, hier habe ich mod_rewrite und es funktioniert auch gut. Das Monatskürzel bleibt aus historischen gründen und um mich aus der Masse herauszuheben drinn ;-). Der Tag interessiert in der URL keinen, deshalb habe ich ihn auch in Jlog weggelassen. Die von dir genannte eintrags-id ist keine, das ist nur ein titel für die URL, dieser darf sich wärend des Jahres auch ruhig wiederholen, wenn man zum Beispiel einmal im Monat seine Statistiken veröffentlicht, dann dürfen die jedes mal example.org/YYYY/MM/statistik heißen, wobei durch die zuordnung des Datums und des gleichzeitigen URL Zusatzes sichergestellt wird, dass diese kombination einmalig ist.
Mich wundert es, dass mod_rewrite als eines der elementären Mittel im URL-Design erst in den teueren Paketen der Provider enthalten ist.
Wrtlprnft, das ist wirklich zu überlegen, wobei man ja das .php vielleicht sogar weglassen kann, wenn man Multiviews verwendet (leider nur beim Apache). Ich muss mich da mal erkundigen, ob bei zusätzlich übergebenen Parametern das ganze immer noch funktioniert.
wahsaga schrieb am 20.09.2005
Christoph Hörl schrieb am 20.09.2005
Bis vor einigen Wochen war ich Kunde bei einem kleineren Webhoster hier aus unserer Umgebung zu denen ich einen persönlichen Kontakt aufgebaut hatte. Auf ihrem Server funktionierte mod_rewrite auch nicht. Sie hatten schlechte Erfahrungen gemacht und deshalb die .htaccess-Funktion aus Sicherheitsgründen deutlich eingeschränkt. Ich hätte zwar auf Wunsch meinen Account freischalten lassen könnte, aber dann hätte ich jede Änderung in der .htaccess von einem Mitarbeiter beim Provider eintragen lassen müssen, weil ich nicht Zugriff hatte. Mittlerweile bin ich gewechselt. Die Providerwahl war recht kompliziert, da manche - wie schon erwähnt - nicht ab dem günstigsten Paket mod_rewrite mit anbieten. Für mich war es aber notwendige Voraussetzung.
blogerich schrieb am 20.09.2005
Mein Problem: ich wüsste gar nicht welche Regeln ich in die .htaccess schreiben sollte damit es funktioniert.
So dumm wie ich war habe ich mir mod rewrite einschalten lassen und habe nun chaos.
Nun funktionieren die url in der übersicht nicht mehr. Das hat man nun davon.
Jeena Paradies aus Varberg schrieb am 20.09.2005
die .htaccess ist schon im jlog paket dabei, hast du die mit hochgeladen?
blogerich schrieb am 22.09.2005
rico aus dresden schrieb am 22.09.2005
sieht so aus als könnte das paket deines providers ein mod_rewrite gar nicht verstehen...
blogerich schrieb am 22.09.2005
Ohne .htaccess funktionieren einige Links mit sauberer url und einige nicht. Ist mir ein Rätzel warum nicht alle gehen?
Kann es sein das ich einige Parameter in der .htaccess ändern muss?
Jeena Paradies aus Varberg schrieb am 23.09.2005
Ohne .htaccess ist es ein Zufall, dass die Links funktionieren. Wenn du mod_rewrite nutzen möchtest, dass ist die verarbeitung der mod_rewrite Regeln in der .htaccess Voraussetzung. Wenn das Einbinden einen 500er Fehler auslöst, dann kann das dein Server eindeutig nicht und du musst dich noch einmal bei deinem Provider melden und ihm sagen das mod_rewrite nicht funktioniert.
Die Rewrite Regeln in der .htaccess sind alle getestet und machen bei anderen auch keine Probleme.
blogerich aus DO/NRW schrieb am 23.09.2005
Jeena Paradies aus Varberg schrieb am 23.09.2005
Du musst in deinem Template alle pfade absolut angeben, dann wird das alles funktionieren.
Chris schrieb am 24.09.2005
Meiner Meinung gehört mod_rewrite zu der Standard-Webspace-Ausstattung. Leider erlauben die meisten Provider - wie beispielsweise Host Europe - in den billigsten Paketen nicht mal eine .htaccess. Auch all-inkl.com hat erst kürzlich die .htacess aus den günstigsten Angeboten rausgeschmissen - man setzt jetzt den IIS als Server ein. :(
Jeena Paradies aus Varberg schrieb am 24.09.2005
Wenn mein Hoster auf ISS wechseln würde, dann würde ich sofort meinen Hoster wechseln. Ganz ehrlich, der Apache hat wesentliche Vorteile gegenüber dem ISS, nicht umsonst ist er auch viel verbreiteter.
Ingo schrieb am 26.09.2005
Das mod_rewrite nicht bei allen Hostern verfügbar ist hängt wohl auch mit seinem Speicherhunger zusammen. Bei vielen Usern auf einem Server, die zur Suchmaschinenoptimierung immer häufiger mod_rewrite nutzen, ist das ein echter Faktor.
Für die Erzeugung von statischen Seiten nach dem Modell von Alexander gibt es eine schöne Möglichkeit, nicht nach einer Templateänderung alles neu aufbauen zu lassen. Du kannst die 404-Seite einfach durch ein Script ersetzen, daß dir dann einmalig dynamisch die entsprechende HTML-Seite aufbaut. Somit muß nicht alles in einem Stück erstellt werden...
Gruß,
Ingo
wrtlprnft aus Winnipeg schrieb am 27.09.2005
Das größte Problem bei .htaccess ist meiner Meinung nach, dass es bei jedem Aufruf neu eingelesen wird. Das dürfte schon etwas Performance kosten.
Alexander aus dem guten alten Mannheim schrieb am 28.09.2005
Hi Jeena,
Ich habe noch eine Idee zur Reduzierung der Serverlast:
In der Datenbank wird doch der Text der Einträge und Kommentare so gespeichert, wie er eingegeben wurde, oder?
Dann könntest du eine weitere Spalte anlegen und dort das gerenderte HTML speichern.
Braucht zwar doppelt so viel Speicherplatz, ist aber viel schneller, weil nicht bei jedem Aufruf die BB-Code-Klasse über sämtliche angezeigte Kommentare und Einträge laufen muss.
Gruß
Alexander
fwolf aus stadt-land-fluss schrieb am 29.09.2005
zu dem thema verweise ich einfach mal auf nen alten eintrag in meinem weblog ;)
cu, w0lf.
Jeena Paradies aus Varberg schrieb am 29.09.2005
Alexander, die Idee ist gar nicht mal schlecht, da veränderungen sowieso immer durch die Software geschehen solle es auch nicht zu einer Inkonsistenz der Daten kommen. Wie viel das schlussendlich bringt müsste man mal messen, denn die meisten Texte sind nicht wirklich lang und verschachtelt, so dass das eventuell gar nicht wirklich ins gewicht fällt.
Robert Wetzlmayr aus Lenzing, Oberösterreich schrieb am 02.10.2005
Florian aus Staufen, Deutschland schrieb am 05.10.2005
Da auch mein Provider überraschend mod_rewrite gekillt hat, habe ich bei meinem Blog einen anderen Trick benutzt:
Meine 404-Fehler-Seite ist eine PHP-Datei, die den Pfad ausliest, und entsprechend die richtigen Inhalte ausgibt. Zuvor wird der Fehler-404 wieder in ein korrektes 202-OK gewandelt.
Damit habe ich jetzt dieselben schönen URLs wie mit mod_rewrite. Einziger Nachteil: Meine Serverlogs kann ich jetzt wegschmeißen, weil sie praktisch nurnoch aus 404-Fehlern bestehen.
Mit WordPress geht das übrigens recht einfach. Ich musste nur einige wenige Zeilen ändern. Kann sein, dass es auf anderen Servern sogar von alleine klappt.
Martin schrieb am 17.10.2005
Robert Hartl aus Passau, D schrieb am 17.11.2005
Eine Link-Übersicht mit verständlichen Infos und Online-Generatoren zu mod_rewrite findet man bei den SEO-Marks von NetProfit.
Ich hatte zu Beginn arge Schwierigkeiten die Regeln zu verstehen, um selbst Fehler verbessern zu können.
Gottseidank liefern die meisten CMS dies nun automatisch.
viagra aus Engladn schrieb am 19.11.2005
Alexander, die Idee ist gar nicht mal schlecht, da veränderungen sowieso immer durch die Software geschehen solle es auch nicht zu einer Inkonsistenz der Daten kommen. Wie viel das schlussendlich bringt müsste man mal messen, denn die meisten Texte sind nicht wirklich lang und verschachtelt, so dass das eventuell gar nicht wirklich ins gewicht fällt.
Anonym schrieb am 28.02.2006
Kürzere URLs wären besser. Allerdings finde ich das Format bei Dir schon ganz gut.
Aber: Wieso verwendest Du nicht die gesamte Überschrift in der URL?
Julius aus Dresden schrieb am 21.05.2007