mod_rewrite und das Kaufmannsund

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

  • mod_rewrite und das Kaufmannsund

    Hallo, habe folgendes Problem bei der Umschreibung meiner URL mithilfe von mod_rewrite.

    OriginalURL:
    produktseite-Games-&-Software

    RewriteRule:
    RewriteRule produktseite-(.*)$ zielseite.php?produkttyp=$1

    Beim Ausgeben von $_GET[produkttyp] erhalte ich nur "Games-", anstatt "Games-&-Software". Mod_Rewrite scheint den String anscheinend nach dem '&' abzubrechen und in zwei GET-Variablen 'Games-' und '-Software' zu splitten. Auch eine vorherige Formatierung des Strings mithilfe von urlencode oder htmlentities nützt nichts, genauso wenig wie das Anhängen des [NE]-Flags an die Rewrite Rule.

    Bitte keine Alternativvorschläge à la "ersetze doch das & durch ein und", usw... Ich möchte das Problem gerne auf diese Weise lösen.

    Für jede Hilfe bin ich schon mal im voraus dankbar.

  • #2
    Das ist so, weil mod_rewrite die Dinger wieder urldecoded. Schreib mal folgendes an den Anfang deiner .htaccess:
    Code:
    php_value arg_separator.input ";"
    Damit sollte es dann gehen, solange kein ; in deinen URLs vorkommt.
    hopka.net!

    Kommentar


    • #3
      Fantastisch, es hat wirklich geklappt. Vielen vielen Dank.

      Wo genau komme ich an solche Informationen, was muß ich mir dafür durchlesen?
      Kannst du mir vielleicht einige nützliche Links oder vielleicht auch bestimmte Literatur empfehlen. Wie bist du denn zum Beispiel an diese Info gekommen?

      Denn nichts ist schlimmer als mit Halbwissen durch die Welt zu irren.

      Danke schon mal im voraus.

      Kommentar


      • #4
        Ich wusste, das & normalerweise das Trennzeichen für GET-Parameter ist, und dass man das bei PHP ändern kann. Dann habe ich irgendwann mal festgestellt, dass mod_rewrite gerne urldecoded.
        Dann hab ich eigentlich nur 1 und 1 zusammen gezählt und mir gedacht, dass es eigentlich nur daran liegen kann, dass PHP durch das & einen neuen GET-Parameter "erschafft", und wenn man PHP jetzt sagt, dass das & nicht das Trennzeichen für GET-Parameter ist, sondern z.B. ; es eigentlich funktionieren müsste.

        K.A. was man da für Literatur braucht, das meiste fliegt einem so im Laufe der Zeit einfach zu.
        hopka.net!

        Kommentar


        • #5
          hmm, logisch, 1 '&' 1 zusammengezählt. Das hätte ich aber vor Beginn des Projekts wissen sollen, denn nun muß ich die Links nachträglich ändern. Aber halb so schlimm, das ist zum Glück nicht so viel.

          Vor allem war mir bei dieser Lösung die Tatsache unbekannt, daß man php.ini-Variablen auch in der .htaccess ändern kann. Diese habe ich außer für mod_rewrite stets gemieden, nun sollte ich mich besser damit beschäftigen.

          Läßt denn jeder Provider zu, daß man solche Änderungen in einer .htaccess vornehmen kann?

          Gruß
          Nube2021

          Kommentar


          • #6
            Original geschrieben von Nube2021
            Läßt denn jeder Provider zu, daß man solche Änderungen in einer .htaccess vornehmen kann?
            nein. und wenn es ein hoster zulässt, heisst es noch lange nicht, dass er alle änderungen zulässt.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              mal nen vorschlag zur güte:

              schmeiß das & raus. Für die Sumas ist es ohnehin uninteressant, und da hats in der URI imho nichts zu suchen.

              Kommentar

              Lädt...
              X