Ankündigung

Einklappen
Keine Ankündigung bisher.

Parameter und saubere URLs

Einklappen

Neue Werbung 2019

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

  • Parameter und saubere URLs

    Hi,

    Mittels $_SERVER['QUERY_STRING'] glaubte ich eigentlich, die URL Parameter auslesen zu können, bevor sie durch Mod-Rewrite zu "sauberen" URLs umgemodelt werden. Dem ist jedoch nicht so, was mich etwas verwirrt.

    Wie kann man Parameter übergeben, trotz sauberer URLs?


    Grüße,

    pcschröda

  • #2
    Zitat von pcschröda Beitrag anzeigen
    Mittels $_SERVER['QUERY_STRING'] glaubte ich eigentlich, die URL Parameter auslesen zu können, bevor sie durch Mod-Rewrite zu "sauberen" URLs umgemodelt werden.
    Dein Script wird erst aufgerufen, nachdem mod_rewrite mit dem Umschreiben der Adresse fertig ist.

    Wie kann man Parameter übergeben, trotz sauberer URLs?
    Ganz normal.
    Ich kann nicht erkennen, wo eigentlich dein Problem liegt - also beschreibe es bitte nachvollziehbarer.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      bevor sie durch Mod-Rewrite zu "sauberen" URLs umgemodelt werden.
      Du hast Mod Rewrite nicht verstanden! Es verhält sich genau andersherum!
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Du hast Mod Rewrite nicht verstanden!
        Offenbar. Ich dachte, das Modul "versteckt" die "unschönen" Parameter vor dem Benutzer, nicht vor dem Entwickler.

        Konkret: Ich habe eine WordPress Seite mit sauberen URLs. Ich will eine Pagination einbauen, welche Parameter in der URL übergeben müsste. Das ergäbe dann sowas:

        http://meineseite.de/datum/beitrag/?startseite=2

        Das ist doch Quatsch. Aber ich blicke nicht, wie ich das umsetzen soll....?


        Oder anders ausgedrückt: wie muss ich ein Script entwickeln, damit es mit "normalen" ebenso wie sauberen URL funktioniert? Denn im ersten Fall liefert $_GET etwas, im letzteren nicht.



        Grüße

        Kommentar


        • #5
          Zitat von pcschröda Beitrag anzeigen
          Offenbar. Ich dachte, das Modul "versteckt" die "unschönen" Parameter vor dem Benutzer, nicht vor dem Entwickler.
          Es versteckt sie so lange, bis der Request den Server erreicht - wo die Adresse dann umgeschrieben wird.

          Konkret: Ich habe eine WordPress Seite mit sauberen URLs. Ich will eine Pagination einbauen, welche Parameter in der URL übergeben müsste. Das ergäbe dann sowas:

          http://example.com/datum/beitrag/?startseite=2
          Bitte keine Fremddomains als Beispiele verlinken! Dafür gibt es explizit example.com/.net/.org.

          Oder anders ausgedrückt: wie muss ich ein Script entwickeln, damit es mit "normalen" ebenso wie sauberen URL funktioniert?
          Noch mal: Dein Script merkt nichts von „sauberen“ URLs - weil es erst aufgerufen wird, nachdem das Umschreiben durch mod_rewrite stattgefunden hat.

          Denn im ersten Fall liefert $_GET etwas, im letzteren nicht.
          Dann hast du vermutlich den startseite=2 nicht mit an dein Script übergeben.

          Um vor der Umschreibung vorhandene Parameter nach der Umschreibung zu erhalten, gibt es das Flag QSA, query string append. Damit wird der ursprüngliche Query-String an den beim Umschreiben erzeugten neuen mit angehängt; per Default wird er entfernt.
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            Ganz so einfach ist das nicht.

            1. HTTP funktioniert nicht so dass man in der URL "irgendwas" hat und "für den Entwickler" dann die echten Daten überträgt.
            2. mod_rewrite hat eigentlich mit GET nichts zutun.

            mod_rewrite schreibt die URL so wie sie im Browser steht nach vorgegebenen Regeln um. Zum Beispiel wird aus

            /datum/beitrag/2
            intern auf deinem Server sowas:
            index.php?page=beitrag&irgendwas=datum&page=2

            Diese Regeln musst du selbst erstellen. Somit kann dein Skript ganz normal auf $_GET['page'] oder $_GET['page'] zugreifen, die aufgerufene URL ist aber trotzdem /datum/beitrag/2.

            Am besten mal ein paar Tutorials zu mod_rewrite lesen.

            Kommentar


            • #7
              also musst du a: die regeln dafür erstellen und b: alles links in deinem wordpress umänderrn. Sollte scchon seine zeit kosten
              Under Construktion

              Kommentar

              Lädt...
              X