mod_rewrite-Problem mit Slash als Trenner

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

  • mod_rewrite-Problem mit Slash als Trenner

    Au Mann, da hab ich zwei Jahre nichts mehr mit mod_rewrite zu tun und jetzt ist alles weg. Also, ich habe folgenden Link:
    HTML-Code:
    <a href="blubb/blubber.htm?id=1">Blubb</a>
    Und die .htaccess dazu sieht so aus:
    Code:
    RewriteEngine on
    RewriteRule ^(.*)/(.*)\.htm$ index.php?main=$1&sub=$2 [QSA]
    So beim ersten Klick ist die URL korrekt. Aber sobald ich mehrmals auf den Link klicke, wird immer ein blubb angehängt. Sogar beim GET-Parameter. Zur Veranschaulichung.

    1.Klick
    Link = http://localhost/blubb/blubber.htm?id=1
    GET per print_r = Array ( [main] => blubb [sub] => blubber [id] => 1 )

    2. Klick
    Link = http://localhost/blubb/blubb/blubber.htm?id=1
    GET per print_r = Array ( [main] => blubb/blubb [sub] => blubber [id] => 1 )

    3. Klick
    Link = http://localhost/blubb/blubb/blubb/blubber.htm?id=1
    GET per print_r = Array ( [main] => blubb/blubb/blubb [sub] => blubber [id] => 1 )

    usw.

    Mit anderen "Trennern" wie Unterstrich oder Punkt funktioniert das reibungslos. Hab schon mit RewriteBase herumexperimentiert und den Slash escaped. Aber nichts hilft. Bei absoluten Pfaden dagegen klappt es, aber das will ich vermeiden. Hat jemand eine Idee?

    Peter
    EDIT:
    Hab extra "Link automatisch umwandeln" deaktiviert, aber jetzt ist es wieder da. Nur als Hinweis
    Zuletzt geändert von Kropff; 18.03.2011, 18:57.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

  • #2
    Hallo Peter,

    dein erster Teilausdruck erfasst alles vor dem letzten Slash, vermutlich willst du eher sowas matchen: ([^/]+)/([^/]+)\.htm$

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Mein Engelchen!

      Danke für den Hinweis. Der klappt. Jetzt muss ich das nur noch gedanklich aufdröseln.

      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Kommado zurück. Hab vergesessen, die absoluten Links aus der PHP-Datei zu entfernen. Jetzt funktioniert es beim ersten Klick und dann bekomme ich einen 404. Im Link steht dann wieder ein http://localhost/blubb/blubb/blubber.htm

        Peter
        Zuletzt geändert von Kropff; 18.03.2011, 19:14.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Dann bau den Link richtig zusammen, evtl. mit basename() auf den "main"-Teil.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Hatte ich schon gemacht, nur etwas anders. Ist also nur eine andere Form der absoluten Verlinkung. Und das wollte ich vermeiden, sondern das Problem ausschließlich über RewriteRule zu lösen. Frag nicht nach den Gründen, die versteht eh keiner.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Zitat von Kropff Beitrag anzeigen
              Hatte ich schon gemacht, nur etwas anders. Ist also nur eine andere Form der absoluten Verlinkung. Und das wollte ich vermeiden, sondern das Problem ausschließlich über RewriteRule zu lösen.
              Du kannst das Problem aber nicht mit mod_rewrite lösen.

              Der Client baut aus den relativen Pfaden, die du angibst, eine vollständige Adresse zusammen.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Zitat von wahsaga Beitrag anzeigen
                Du kannst das Problem aber nicht mit mod_rewrite lösen.
                Klare Aussage. Danke.
                Zitat von wahsaga Beitrag anzeigen
                Der Client baut aus den relativen Pfaden, die du angibst, eine vollständige Adresse zusammen.
                Ich hatte gehofft, das umgehen zu können. Bin halt nicht der Freund von absoluten Verlinkungen. Aber was solls. Danke euch beiden. Arbeite ich halt mit einer entsprechenden Variablen.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar

                Lädt...
                X