mod_rewrite-Problem mit Slash als Trenner

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by Kropff; 18-03-2011, 17: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]

    Comment


    • #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

      Comment


      • #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
        Last edited by Kropff; 18-03-2011, 18:14.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Comment


        • #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]

          Comment


          • #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

            Comment


            • #7
              Originally posted by Kropff View Post
              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.

              Comment


              • #8
                Originally posted by wahsaga View Post
                Du kannst das Problem aber nicht mit mod_rewrite lösen.
                Klare Aussage. Danke.
                Originally posted by wahsaga View Post
                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

                Comment

                Working...
                X