Ankündigung

Einklappen
Keine Ankündigung bisher.

Mode Rewrite Problem mit Sonderzeichen in der URL

Einklappen

Neue Werbung 2019

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

  • Mode Rewrite Problem mit Sonderzeichen in der URL

    Hallo Zusammen,
    ich habe da ein kleines Problem, das ich nicht auf die Reihe bekomme. Vielleicht könnt Ihr mir helfen?
    Habe eine URI in etwa so: http://www.domain.tld/verz1/verz2/verz3/filename.html
    Diese leite ich jetzt per Mode Rewrite in der htacces um.
    Ein Ausdrucks-Element: /([0-9a-zA-Z\-]+)/

    Nun steckt in der URL folgendes Problem: /Marke-nameA-&-nameB/
    Und es will mir nicht gelingen, das &amp so zu erfassen, das "nameA-amp-nameB" als ein Ausdruck im GET steht.

    Ob da jetzt das "&" oder das &amp steht ist mir egal, das kann ich abfangen.

    Die URI ist im Link codiert als &amp wie muss ich nun den Ausdruck /Marke-([0-9a-zA-Z\-]+)/ verändern?
    Das /Marke-([0-9a-zA-Z\-&]+)/ klappt nicht, Obwohl nach dem Auslösem des Links tatsächlich das & in der URi steht.

    Das Ergebnis im GET ist aber leider so: [Marke]=>"nameA" [nameB]=>""
    Ergbnis soll sein: [Marke]=>"nameA-&-nameB"

    Hoffe, ich habe mich klar ausgedrückt.
    Schon mal vielen Dank !! für das Lesen.
    Holger




  • #2
    https://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2

    Kommentar


    • #3
      Hallo Protestix,
      danke für die Info. Allerdings hilft mir das nich wirklcih weiter.
      ob in dem Link nun
      HTML-Code:
      &
      oder
      HTML-Code:
      &#38
      oder
      HTML-Code:
      &
      löst mein Problem, wie der Regex aussehen muss, leider nicht.
      HTML-Code:
      &#38
      liefert mir sofort Serverseitig einen 404.
      Vielleicht verstehe ich auch nur nicht, was Du mir damit sagen möchtest,



      Kommentar


      • #4
        Du solltest dich mal über das Grundprinzip von URLs informieren. Alles in einer URL ab # wird nicht mehr zum Server gesendet.

        Und deine Mod-Rewrite Regel ist unnötig kompliziert. Leite einfach ALLE Anfragen an die index.php und den Rest machst du dann in PHP. Mod-Rewrite sollte nicht dazu verwendet werden die Routinglogik der Anwendung nachzubilden. Dadurch verteilst du nur unnötig die Logik auf zwei Orte anstatt einfach alles direkt in der Anwendung zu machen.

        In 99% der Fälle reicht es, wenn Folgendes in der .htaccess steht:

        Code:
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^.*$ index.php [NC,L]

        Kommentar


        • #5
          Hallo Hellbringer,
          danke für Deine Ausführungen,
          - Aus dem von Protestiks gemailtem Links stammt folgende Information:
          HTML-Code:
          it must be written <A href="http://host/?x=1&#38;y=2"> or <A href="http://host/?x=1&amp;y=2">.
          das -- # -- ist mir schon klar, aber he, wer bin ich schon??
          Und wenn ich das so richtig verstanden habe, ist &nnnn; eine Zeichen-Maskierung in einem Link. da kann dann auch genre eine # drinnstehen. Oder?

          Deine Hinweise und Diene Regeln sind für später sicher sehr nützlich, aber bezüglich meiner Frage wenig hilfreich.
          Habe einfach einmal Deine Rules 1:1 übernommen. Ergebnis: GET ist vollständig leer.
          Könnte also hier nur mit $_SERVER[]-vars weitermachen. Dafür bräuchte ich nur eine einzige Regel.
          So wie es im Moment ist, kommt nur das in die Scripte, was da auch hin darf und soll. keine Ahnung, was da so alles hinkommt, wenn ich Diene Regeln 1:1 übernehme.

          Da ich im Moment noch keine Ahnung habe, was die von Dir geposteten Rules eigentlich wircklich umsetzen, werfen Sie zur Zeit noch mehr Fragen auf, als Lösungen.
          Wenn ich einige grundsätzliche Dinge zum Thema mehr verstanden habe werde ich mich mit Deinen Regeln gerne detailierter auseinander setzen.
          Ich danke Euch, für Eure Mühe.
          Aber meine Frage ist leider immer noch offen.

          Kommentar

          Lädt...
          X