Bobby: mod_rewrite Problem

Moin

hab mal wieder ein Verständnisproblem mit mod_rewrite:

ich habe eine URL:
www.meinedomain.de/DE/irgendeinlayout/hotel-suche/suche/view.php?sv=1

Dieser soll per modrewrite folgendermaßen aussehen:

www.meinedomain.de/hotel-suche/suche/view.php?sv=1&lang=DE&layout=irgendeinlayout

Dazu hab ich die htacces folgendermaßen geschrieben:

RewriteRule ([A-Z]{2})/(.*)/(.*)$ $3?lang=$1&layout=$2&%{QUERY_STRING}

Nun sieht die ersetzte URL wie folgt aus:

www.meinedomain.de/view.php?sv=1&lang=DE&layout=irgendeinlayout

warum ist der Pfadteil: hotel-suche/suche/ ebenfalls ersetzt? Wo ist mein Fehler?

Gruß Bobby

--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  1. Hi,

    ich habe eine URL:
    www.meinedomain.de/[...]

    die Domain gehört Schlund+Partner, Du sitzt also bei mir im Haus. In Deiner Umgebung sollte es haufenweise Leute geben, die sich mit RegExp auskennen; falls Du keinen findest, komm einfach bei mir vorbei. Ich sitze im 4. Stock.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Moin

      die Domain gehört Schlund+Partner, Du sitzt also bei mir im Haus. In Deiner Umgebung sollte es haufenweise Leute geben, die sich mit RegExp auskennen; falls Du keinen findest, komm einfach bei mir vorbei. Ich sitze im 4. Stock.

      Scherzkeks!!!! :-D

      Gruß Bobby

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
      1. Mahlzeit,

        Scherzkeks!!!! :-D

        Nein, er hat absolut Recht. Genau für derartige Zwecke existieren die "Pseudo-Domains" example.com, example.net und example.org ... versuch doch mal eine der genannten in die Adressleiste Deines Browsers einzugeben.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Moin

          Nein, er hat absolut Recht. Genau für derartige Zwecke existieren die "Pseudo-Domains" example.com, example.net und example.org ... versuch doch mal eine der genannten in die Adressleiste Deines Browsers einzugeben.

          Werde ich demnächst benutzen, tut aber eigentlich nix zur Sache, da es nur ein beispiel war und somit für unter Krümelkackerei fällt. Es ging ja ums Prinzip!

          Gruß Bobby

          --
          -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
          -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
          ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
          1. Mahlzeit,

            Werde ich demnächst benutzen, tut aber eigentlich nix zur Sache,

            Doch, genau das tut es. Wenn Du nämlich theoretisch mögliche und ggf. sogar existierende Domain-Namen in Beispielcode verwendest, wundern sich die Betreiber dieser Domains u.U. über den dadurch entstehenden Traffic, es kommen dort vielleicht sogar Formulardaten oder Emails mit möglicherweise kompromittierenden Daten an usw.

            da es nur ein beispiel war

            Hm, lass mich kurz überlegen, was bedeutet "example" nochmal vom Englischen ins Deutsche übersetzt ... gerade WEIL es ein Beispiel ist, sind die genannten Domains diejenigen, die dafür benutzt werden sollen - extra für diesen Zweck wurden sie ins Leben gerufen.

            und somit für unter Krümelkackerei fällt.

            Sicher. Recht hab ich trotzdem. ;-)

            Es ging ja ums Prinzip!

            Genau so ist es. Es geht ums Prinzip. Und prinzipiell sind die genannten Domains für Beispiele zu benutzen ... :-)

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          2. echo $begrüßung;

            Nein, er hat absolut Recht. Genau für derartige Zwecke existieren die "Pseudo-Domains" example.com, example.net und example.org ... versuch doch mal eine der genannten in die Adressleiste Deines Browsers einzugeben.
            Werde ich demnächst benutzen, tut aber eigentlich nix zur Sache, da es nur ein beispiel war und somit für unter Krümelkackerei fällt. Es ging ja ums Prinzip!

            Kleiner Literaturtipp:
            http://www.heise.de/newsticker/Und-ich-sach-noch-Bitte-nicht-auf-diese-E-Mail-antworten--/meldung/105427
            http://www.donotreply.com/

            echo "$verabschiedung $name";

    2. Mahlzeit,

      die Domain gehört Schlund+Partner, Du sitzt also bei mir im Haus. In Deiner Umgebung sollte es haufenweise Leute geben, die sich mit RegExp auskennen; falls Du keinen findest, komm einfach bei mir vorbei. Ich sitze im 4. Stock.

      :-)

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Mahlzeit,

    hab mal wieder ein Verständnisproblem mit mod_rewrite:

    Nein, Du hast ein Verständnisproblem mit regulären Ausdrücken. :-)

    RewriteRule ([A-Z]{2})/(.*)/(.*)$ $3?lang=$1&layout=$2&%{QUERY_STRING}

    Also ich spiele mal RegExp-Interpreter, OK?

    Zuerst 2 Großbuchstaben (diese merken), dann ein Schrägstrich, dann eine beliebige Anzahl beliebiger Zeichen (diese merken) ... fertig!

    Besser wäre: ([A-Z]{2})/([^/]+)/(.*)$

    warum ist der Pfadteil: hotel-suche/suche/ ebenfalls ersetzt? Wo ist mein Fehler?

    "." bedeutet in einem regulären Ausdruck wirklich "JEDES beliebige Zeichen" - auch "/" ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Moin

      Nein, Du hast ein Verständnisproblem mit regulären Ausdrücken. :-)

      Ja. hast recht.

      Besser wäre: ([A-Z]{2})/([^/]+)/(.*)$

      das funktioniert... Danke

      Gruß Bobby

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
  3. www.meinedomain.de/DE/irgendeinlayout/hotel-suche

    RewriteRule ^/?(<ausdruck1 x>)/(<ausdruck2 y)/(<ausdruck3 z)$ view.php?X=$1&Y=$2&Z=$3

    Es kommt immer drauf an wo du bist - sprich der Pfad der Datei.

  4. Moin

    Moin

    hab mal wieder ein Verständnisproblem mit mod_rewrite:

    ich habe eine URL:
    www.meinedomain.de/DE/irgendeinlayout/hotel-suche/suche/view.php?sv=1

    Dieser soll per modrewrite folgendermaßen aussehen:

    www.meinedomain.de/hotel-suche/suche/view.php?sv=1&lang=DE&layout=irgendeinlayout

    Dazu hab ich die htacces folgendermaßen geschrieben:

    RewriteRule ([A-Z]{2})/(.*)/(.*)$ $3?lang=$1&layout=$2&%{QUERY_STRING}

    Nun sieht die ersetzte URL wie folgt aus:

    www.meinedomain.de/view.php?sv=1&lang=DE&layout=irgendeinlayout

    warum ist der Pfadteil: hotel-suche/suche/ ebenfalls ersetzt? Wo ist mein Fehler?

    OK. ich habe es verstanden. Als String2 wird die Zeichenkette "irgendeinlayout/hotel-suche/" genommen. Aber wie kann ich nun Modrewrite anweisen den veränderbaren String 2 nur die zeichenkette "irgendeinlayout" zu ersetzen?

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)