RuD: mod_rewrite

Seid gegrüßt!
Ich habe folgende Frage: Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen. Ich habe in einer DB Einträge die unter anderem eine Überschrift haben. Allerdings werden die Einräge über eine ID angesprochen (z.B. index.php?id=2) und dann ausgegeben.
Ist es möglich die Einträge per mod_rewrite auszuwählen (z.B. www.domain.tld/eintraege/[Überschrift]/index.html).

Danke schonmal für eure Antworten

--
Bis Später
                       __
      ________   _____/ //
     / ___   // / __   //
    / //  / //_/ /_/  //
   /_//  /___________//
==========================================================
Testversion meiner Seite: http://www.rudweb.de/test2
  1. Ich grüsse den Cosmos,

    Ich habe folgende Frage: Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.

    Ich glaub du hast nicht verstanden, was mod_rewrite überhaupt macht.
    Es werden lediglich URLs umgeschrieben.
    Also lautet die einfache Antwort auf deine Frage: Nein, es geht nicht.
    Oder satierisch: Das klappt dann, wenn du es schaffst, mit einem Ei einen Nagel in die Wand zu shclagen :D

    Möge das "Self" mit euch sein

    --
    Ich bin keine Signatur, ich fülle nur diesen leeren Platz mit sinnlosen Worten
  2. Hallo RuD.

    Ist es möglich die Einträge per mod_rewrite auszuwählen (z.B. www.domain.tld/eintraege/[Überschrift]/index.html).

    Wenn du für jede [Überschrift] eine Regel notierst: ja.
    Doch mit der Zeit könnten dies verdammt viele Regeln werden, je nach dem, wie viele Einträge es gibt.

    Einen schönen Samstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
  3. hallo,

    so, mal ein bißchen als Zusammenfassung der beiden widersprüchlichen Aussagen von Ashura und Manuel:

    Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.

    Nein, das ist es nicht. Es sei denn, du befindest dich in einer Umgebung, in der, wie Manuel schrieb, "du es schaffst, mit einem Ei einen Nagel in die Wand zu schlagen". Wichtig auch sein Hinweis: "Ich glaub du hast nicht verstanden, was mod_rewrite überhaupt macht. Es werden lediglich URLs umgeschrieben."

    Ich habe in einer DB Einträge die unter anderem eine Überschrift haben. Allerdings werden die Einräge über eine ID angesprochen (z.B. index.php?id=2) und dann ausgegeben.
    Ist es möglich die Einträge per mod_rewrite auszuwählen (z.B. www.domain.tld/eintraege/[Überschrift]/index.html).

    Ja. das ist möglich, wenn auch unter Umständen enorm aufwendig. Dazu hat dir Ashura den Weg gewiesen. Es geht dabei allerdings nicht ums "Auswählen". Deine Datenbankeinträge müssen bereits in der Ressource enthalten sein, auf die mod_rewrite verweisen soll.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  4. echo $begrüßung;

    Ich habe folgende Frage: Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.

    (Fragen werden eigentlich immer noch mit einem Fragezeichen abgeschlossen und nicht mit einem Satz eingeleitet.)

    mod_rewrite bietet eine Direktive namens RewriteMap an. Allgemein liefert RewriteMap einen Wert zu einem Schlüssel. Mit dem MapType prg, kann man ein "External Rewriting Program" ansprechen. Dieses kann dann alles mögliche tun.

    Zu beachten ist dabei, dass RewriteMap nur in der Server- oder VHost-Konfiguration definiert werden kann. Alles weitere findest du im Handbuch: RewriteMap (Apache V1.3) RewriteMap (Apache V2.0)

    echo "$verabschiedung $name";

    1. Hi dedlfix,

      (Fragen werden eigentlich immer noch mit einem Fragezeichen abgeschlossen und nicht mit einem Satz eingeleitet.)

      diese Bemerkung hättest Du dir sparen können, IMHO.

      Mit dem MapType prg, kann man ein "External Rewriting Program" ansprechen.

      ^ da kommt kein Komma hin

      Dieses kann dann alles mögliche tun.

      ^ Mögliche

      Alles weitere findest du im Handbuch:

      ^ Weitere

      so what?

      Mir geht es in letzter Zeit etwas auf den Keks, dass hier des Öfteren auf mangelhafte Rechtschreibung hingewiesen wird, wenn es dazu keinen Anlass gibt. Der OP hat hier bislang vier Antworten erhalten. Es hat also scheinbar jeder verstanden, worum es ihm ging.

      Dennoch: ansonsten ist deine Antwort sehr hilfreich. Diese Möglichkeit kannte ich noch nicht, daher "Danke" auch von mir ;-)

      Nichts für ungut und Gruß,
      Andreas.

      1. hallo Andreas,

        du gehörst zu denen, die sich gelegentlich sehr rar machen, was eigentlich ziemlich schade ist.

        Mir geht es in letzter Zeit etwas auf den Keks, dass hier des Öfteren auf mangelhafte Rechtschreibung hingewiesen wird

        Das gabs schon häufiger, allerdings bietet dieser Thread (bisher) weit weniger Angriffspunkt als andere Threads und postings.

        Nur zur Erinnerung ein Archiv-Verweis.

        Grüße aus Berlin

        Christoph S.

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

          du gehörst zu denen, die sich gelegentlich sehr rar machen, was eigentlich ziemlich schade ist.

          Du fändest es also besser, wenn er sich öfter rar machte?
          MfG, at

      2. echo $begrüßung;

        Mit dem MapType prg, kann man ein "External Rewriting Program" ansprechen.
                             ^ da kommt kein Komma hin

        Ja, das hätte da auch nicht stehen bleiben sollen. In der vorigen Version des Satzes war es berechtigt, doch beim Umbau in die endgültige Form habe ich es offensichtlich übersehen.

        Dieses kann dann alles mögliche tun.
                                  ^ Mögliche

        Alles weitere findest du im Handbuch:
                 ^ Weitere

        Wenn du das so sagst, muss ich dir Recht geben. Danke für den Hinweis, darauf werde ich in Zukunft besser aufpassen.

        (Fragen werden eigentlich immer noch mit einem Fragezeichen abgeschlossen und nicht mit einem Satz eingeleitet.)

        diese Bemerkung hättest Du dir sparen können, IMHO.

        .oO( Soll ich auch auf die Fehler in diesem Satz eingehen? Ich lass es mal unkommentiert. )

        Unnötiges einleitendes Geschwafel mag ich nun mal nicht. Ich finde es in Ordnung, neben der eigentlichen fachlichen Antwort, auch auf solche Dinge hinzuweisen.

        Du magst Kritik an Rechtschreibung und Stil anscheinend nicht. Ich mag sie. Wer von uns beiden hat nun Recht?

        Mir geht es in letzter Zeit etwas auf den Keks, dass hier des Öfteren auf mangelhafte Rechtschreibung hingewiesen wird, wenn es dazu keinen Anlass gibt.

        Mangelhafte Rechtschreibung ist kein Anlass, auf selbige hinzuweisen? Warum nicht? (Programmier-)fehler und unnötige Programmteile werden neben der Klärung des eigentlichen Problems auch oftmals aufgezeigt. Warum hat dies eine deutlich höhere Akzeptanz als das Korrigieren von Syntaxfehlern und Ausdrucksweise in der Umgangssprache?

        echo "$verabschiedung $name";

        1. Hi dedlfix,

          Unnötiges einleitendes Geschwafel mag ich nun mal nicht.

          Wie meinen?

          Du magst Kritik an Rechtschreibung und Stil anscheinend nicht.

          Es kommt auf die Schwere an. Ich bin ebenfalls kein Freund von unverständlichen Problembeschreibungen. Ich halte es auch nicht für hilfreich, auf eine solche ins Blaue hinein zu raten, was der Fragesteller denn nun gemeint haben könnte.

          Mangelhafte Rechtschreibung ist kein Anlass, auf selbige hinzuweisen? Warum nicht?

          Wenn sie die Problembeschreibung nicht sinnentstellt. Aber wenn man einem Fragesteller auf eine ansonsten klare Problembeschreibung eine Antwort verweigert, bis dieser erklärt, was "HTLM" ist[1], dann tut es mir Leid, erkenne ich den Sinn darin nicht.

          Das hast du ausdrücklich _nicht_ getan, daher finde ich deine Antwort nach wie vor hilfreich und dein Hinweis ist vermutlich kein Paradebeispiel für meinen Einwand.

          (Programmier-)fehler

          == Rechtschreib-/Grammatikfehler

          und unnötige Programmteile

          == Stil

          werden neben der Klärung des eigentlichen Problems auch oftmals aufgezeigt. Warum hat dies eine deutlich höhere Akzeptanz als das Korrigieren von Syntaxfehlern und Ausdrucksweise in der Umgangssprache?

          Ich finde, es hat überhaupt keine höhere Akzeptanz - es ist sogar absolut vergleichbar. Es gibt sinnentstellte Problembeschreibungen und sinnentstellte Umsetzungen. Auf beides sollte hingewiesen werden, wenn nötig. Eine Programmiersprache ist auch nur eine Sprache mit Regeln für Grammatik und Syntax. Dass oftmals mehr Fehler im Code als in der Frage stecken/gefunden werden, liegt wohl in der Natur eines Forums, das sich mit Programmierung beschäftigt.

          Die Rechtschreibung des OP war _in diesem Fall_ aber m.E. nicht so schlecht, dass Du daraus negative Rückschlüsse auf seine Fähigkeiten in Sachen Rechtschreibung/Grammatik ziehen könntest, was bei hier vorgestelltem Code aber oftmal das Gegenteil ist.

          Gruß,
          Andreas.

          [1] das ist natürlich ein erfundenes Beispiel - ich bin jetzt zu faul, ein ähnliches Posting zu suchen.

          1. Hallo Andreas,

            Mangelhafte Rechtschreibung ist kein Anlass, auf selbige hinzuweisen? Warum nicht?
            Es kommt auf die Schwere an.

            auch wenn ich jetzt die Reihenfolge umgestellt habe, so habe ich doch hoffentlich die Aussage als solche trotzdem richtig wiedergegeben.

            Naja, ich mache da keine Unterschiede nach der "Schwere" des Fehlers. In der EDV können sich schon kleinste Schreibfehler verheerend auswirken, in der Umgangssprache ist das zum Glück nicht so extrem, weil der menschliche validierende Parser einige Fehler oft unbemerkt automatisch korrigiert.

            Aber da ich mit Bedauern feststelle, dass immer mehr Menschen Probleme mit der korrekten Rechtschreibung und Grammatik haben, weise ich auch bei kleinen Fehlern gelegentlich darauf hin.
            Okay, es macht sich vielleicht nicht gut, den Chef in einer Abteilungsbesprechung zu korrigieren; man muss da ein wenig abwägen, wo es angebracht ist und wo nicht. ;-)
            Ebenso finde ich es nicht in Ordnung, ein Posting hier abzusenden, dessen Inhalt sich ausschließlich in Mäkeleien am Geschreibsel des Vorposters erschöpft. Aber ergänzend zu einer ernst gemeinten und inhaltlich hilfreichen Antwort finde ich das angesichts der um sich greifenden Rechtschreibschwäche schon angebracht.

            Ich bin ebenfalls kein Freund von unverständlichen Problembeschreibungen. Ich halte es auch nicht für hilfreich, auf eine solche ins Blaue hinein zu raten, was der Fragesteller denn nun gemeint haben könnte.

            Spätestens dann, wenn der Sinn nicht mehr verständlich ist, sehe ich sowieso keine Alternative mehr als entweder das Posting zu ignorieren oder nachzufragen. Raten und Nachfragen finde ich durchaus auch vernünftig und oft zielführend.

            Aber wenn man einem Fragesteller auf eine ansonsten klare Problembeschreibung eine Antwort verweigert, bis dieser erklärt, was "HTLM" ist[1], dann tut es mir Leid, erkenne ich den Sinn darin nicht.

            Das ist auch nach meinem Empfinden sture Korinthenkackerei.

            (Programmier-)fehler
            == Rechtschreib-/Grammatikfehler

            und unnötige Programmteile
            == Stil

            Ich finde, es hat überhaupt keine höhere Akzeptanz - es ist sogar absolut vergleichbar.

            Full ACK.

            Schönen Sonntag noch,
             Martin

            --
            Wissen erwirbt man, indem man immer das Kleingedruckte sorgfältig liest.
            Erfahrung bekommt man, indem man das nicht tut.
          2. Hallo.

            Unnötiges einleitendes Geschwafel mag ich nun mal nicht.

            Wie meinen?

            Das heißt: "Wie meines?"
            MfG, at

            1. Hi,

              Unnötiges einleitendes Geschwafel mag ich nun mal nicht.

              Wie meinen?

              Das heißt: "Wie meines?"

              nack. Mein Geschwafel ist nicht nur einleitend unnötig ;-)

              Gruß,
              Andreas.

        2. Hallo dedlfix,

          Mangelhafte Rechtschreibung ist kein Anlass, auf selbige hinzuweisen? Warum nicht?

          Weil sie mittlerweile Standart™ ist?

          (Programmier-)fehler und unnötige Programmteile werden neben der Klärung des eigentlichen Problems auch oftmals aufgezeigt. Warum hat dies eine deutlich höhere Akzeptanz als das Korrigieren von Syntaxfehlern und Ausdrucksweise in der Umgangssprache?

          Korrekte Rechtschreibung ist eine Angelegenheit des Wissens, nicht der Intelligenz. Dennoch werden Schwächen in diesem Bereich gerne mit der Unterstellung von Dummheit abgetan, und dies ist den Betroffenen durchaus bewusst. Gut gemeinte Korrekturen werden daher schnell als überheblich angesehen.

          Man sollte schon unterscheiden, ob man es mit einer Person zu tun hat, die bisher in geringem Umfang schriftlich kommuniziert hat (Generation Emoticon / Boardvolk), oder ob man jemandem auf die Füße tritt, dem ein Schlampigkeitsfehler unterlaufen ist. Es kommt eben auf den Kontext an.

          Grüße
           Roland

  5. Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.

    Natürlich nicht, aber das wurde Dir ja schon gesagt.

    Ich habe in einer DB Einträge die unter anderem eine Überschrift haben. Allerdings werden die Einräge über eine ID angesprochen (z.B. index.php?id=2) und dann ausgegeben.

    Also hast Du eine Tabelle, die mindestens

    id INTEGER
    heading VARCHAR
    content BLOB

    oder so enthält.

    Ist es möglich die Einträge per mod_rewrite auszuwählen (z.B. www.domain.tld/eintraege/[Überschrift]/index.html).

    Na klar geht das. Du braucht jetzt nur noch ein php Skript, das statt

    SELECT * FROM seite WHERE id=$ID

    einfach

    SELECT * FROM seite WHERE heading=$HEADING

    ausführt. Der Rest sollte dann trivial sein. Alternativ ein Wrapper, der SELECT id FROM seite WHERE heading=$HEADING ausführt und dann die eigentliche index.php mit dem id-Parameter aufruft.

    Gruß, Bodo

    1. Moin!

      Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.

      Natürlich nicht, aber das wurde Dir ja schon gesagt.

      Quatsch&Unsinn. ;)

      Beweis: Externes Rewrite-Skript einbinden nach Art von http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#other - damit kann man direkt im Rewrite-Prozess eine Datenbankabfrage machen.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Moin!

        Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.

        Natürlich nicht, aber das wurde Dir ja schon gesagt.

        Quatsch&Unsinn. ;)

        Negative, Sir!

        Beweis: Externes Rewrite-Skript einbinden nach Art von http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#other - damit kann man direkt im Rewrite-Prozess eine Datenbankabfrage machen.

        Es ist dann das Skript, das die MySQL Abfrage macht, nicht mod_rewrite.

        Also, die Frage lautete: Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.
        Die Antwort darauf könnte also lauten: Nein, aber es ist möglich, mit mod_rewrite ein Programm zu starten, das es kann (oder so ähnlich). Letztlich dürfte aber der andere von mir vorgeschlagene Weg sinnvoller sein - zumindest mit unserem derzeitigen Kenntnisstand über RuDs Problem/Aufgabe.

        Gruß, Bodo

        1. Moin!

          Quatsch&Unsinn. ;)

          Negative, Sir!

          Ach, das magst du auch nicht haben, wenn man dir sowas vorwirft?

          Beweis: Externes Rewrite-Skript einbinden nach Art von http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#other - damit kann man direkt im Rewrite-Prozess eine Datenbankabfrage machen.

          Es ist dann das Skript, das die MySQL Abfrage macht, nicht mod_rewrite.

          Mod_rewrite erlangt durch Anwendung der eigenen Konfigurationsmethoden die Möglichkeit, eine URL in einen Mechanismus zu geben und ein Ergebnis zu erhalten, welches durch Datenbankabfrage beeinflußt wird.

          Ich sehe wenig Unterschied, ob nun mod_rewrite selbst durch Einbindung der MySQL-Client-Bibliothek und Konfiguration von Login und SQL-Request die Datenbank kontaktieren kann, oder ob dies durch ein vom Apachen gestartetes Skript geschieht, welches den etwas allgemeiner gehaltenen Mechanismus von RewriteMap nutzt.

          Rewriting ist komplex. RewriteMaps erlauben noch komplexers Rewriting. Im Gegensatz zu beispielsweise mod_auth_mysql, bei dem es letztendlich nur auf die Prüfung von "Username und Passwort korrekt? Antwortmöglichkeit Ja/Nein" ankommt, ist der Weg über ein externes Skript und Kommunikation über die Standardein- und -ausgabe deutlich sinnvoller.

          Also, die Frage lautete: Ist es möglich mit mod_rewrite in einer mysql-DB zu lesen.
          Die Antwort darauf könnte also lauten: Nein, aber es ist möglich, mit mod_rewrite ein Programm zu starten, das es kann (oder so ähnlich).

          Deine Antwort wäre falsch. Mod_rewrite startet das Programm nicht - wenn man es denn schon so genau nimmt.

          - Sven Rautenberg

          --
          "Love your nation - respect the others."
      2. hi,

        Beweis: Externes Rewrite-Skript einbinden nach Art von http://httpd.apache.org/docs/2.0/rewrite/rewrite_guide.html#other - damit kann man direkt im Rewrite-Prozess eine Datenbankabfrage machen.

        Nicht alles technisch mögliche muss auch sinnvoll sein :-)

        Im vorliegenden Fall kann ich für diese Technik wenig sinnvolles entdecken.
        Soll ich per mod_rewrite die "Überschrift" an ein Script/Programm übergeben, welches mir zu dieser eine Datensatz-ID heraussucht, um dann diese ID wiederum an das darstellende Script zu übergeben?
        Da kann ich doch, in so einem simplen Anwendungsfall, lieber gleich dem darstellenden Script die Überschrift übergeben, und es selber mittels dieser den passenden Datensatz suchen lassen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }