Ankündigung

Einklappen
Keine Ankündigung bisher.

session und Mode_rewrite

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • session und Mode_rewrite

    Hallo

    Ich habe mich heute mal wieder mit einem Thema angelegt, das ich so eigentlich garnicht mag. Ja ich rede von Mode_rewrite.
    Hab schon wirklich einiges darüber gelesen, verstehe aber einfach das System dahinter nicht.
    Also ich möchte die URL zur Sprachsteuerung verwenden.
    Z.B. sowas: www.lilalu.de/de/seite.html

    Auf der Seite werden Texte aus einer Datenbank angezeigt. dafür möchte ich auch direktverlinkungen machen. Diese texte sind manchmal in verschiedenen Sprachen vorhanden. Das soll dann auch über die ULR laufen.

    So dass ich dann z.b. http://www.lilalu.de/eng/hauptgruppe...gruppe/id.html habe.

    Aber ich schaffe es ja nicht mal dass ich alle anfragen auf die index.php umleite.

    Code:
    RewriteEngine On
    RewriteBase / 
    RewriteRule ^([-a-zA-Z0-9])\.html$ /index.php?content=$1 [L]
    Kann mir das vllt bitte jemand wirklich erklären oder mir eine Seite zeigen, wo das wirklich gut erklärt ist?

    Das andere Thema ist die session. Ich hab das mal getestet. Wenn ich z.b. die Sprache der Seite selber über die Session mache, aber cookies deaktiviere, geht das nicht. Bei jedem Neuladen der Seite bekomm ich dann eine neue Session_id. Was kann man machen, wenn jemand keine Cookies hat? spätestens den login würde ich gerne mit session machen. Aber ich kann ja nichts in der Session speichern, wenn er jedes mal wenn er eine Seite aufruft eine neue ID bekommt.

    Danke für die Hilfe
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.


  • #2
    Du kannst die Session-ID auch per GET-/POST-Parameter übergeben:
    [man]session_name[/man]

    Zu deinem Rewrite-Problem. Deine Regel funktioniert aus einem Grund nicht: Die Dateien haben auch eine Pfadangabe. Du könntest folgendes machen:
    Code:
    RewriteRule ^/.*/([-a-zA-Z0-9])+\.html$ /index.php?content=$1 [L]
    (ungetestet)
    www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
    Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

    Kommentar


    • #3
      Im übrigen nennt es sich mod_rewrite. Das kommt von module.

      Kommentar


      • #4
        Danke.

        Ich hab jetzt versucht anhand eines Mod Rewrite Generators hinter das system zu steigen. Ich denke ich bin schon einen Schritt weiter. Jedoch haben sich mir 2 neue fragen aufgetan.

        hier mal der aktuelle code:
        Code:
        RewriteEngine On
        RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?sprache=$1&seite=$2 [L]
        jetzt habe ich eine regel für Sprache und Seite.
        1. was passiert wenn jemand jetzt ohne diesen Parametern auf die seite kommt? defaultwerte setzen?
        2. kann man das auch irgendwie stufenweise machen? z.b. so:

        http://www.domain.com/sprache/seite/...gruppe/id.html

        wenn jemand jetzt nur mit http://www.domain.com/sprache/seite/gruppe/ kommt, dass er dann z.b. auf diese seite geleitet wird - http://www.domain.com/indxe.php?seite=seite&gruppe=gruppe

        wie gesagt, ich versteh das noch nicht wirklich. wie ist das mit den regeln? kann man da x-tausend regeln setzen? beisen die sich nicht irgendwie?
        z.b. um auf einen Beitrag direkt zu verlinken würde ich gerne
        http://www.domain.com/textid.html nehmen. geht das auch? woher weis dann der server ob das jetzt die sprache ist, und einfach nichts weiter angegeben wurde oder ob das ein direktlink ist der auf http://www.domain.com/text.php?id=textid weitergeleitet werden sollte.

        zudem hat sich gerade noch was aufgetan. ich hab ja diese Regel da oben. er leitet mich jetzt zwar richtig weiter, lädt aber no image or css??

        EDIT:
        CSS geklärt-> absoluter pfad in der Datei selber angeben (aus <link href="css/style.css" type="text/css" rel="stylesheet" /> wird <link href="/css/style.css" type="text/css" rel="stylesheet" />)
        Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

        Kommentar


        • #5
          Dann zieht die Regel nicht. Sie verlangt explizit zwei Pfad-Teile. Mache eine Alternativregel auf. Dazu einfach eine zweite RewriteRule.
          www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
          Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

          Kommentar


          • #6
            Ich würde Dir zu den Standard-Sprachkürzeln (2-stellig) raten, sonst kann Dein rewrite nicht zwischen Sprachangabe und sonstigen "Pfaden" unterscheiden. Gerade mit der Alternativ-Rule.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar

            Lädt...
            X