mod_rewrite

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

  • mod_rewrite

    Hallo erst mal (bin neu hier)!

    Ich habe ja schon alle (na ja, fast alle - die meisten - ein paar) Beiträge zu mod_rewrite hier gelesen, aber leider keine Lösung für mein Problem gefunden.

    Ich bin auf der Suche nach der ReWriteRule, die aus meiner URL

    www.domain.de/verzeichnis/p1/v1/p2/v2/pn/vn

    folgendes macht:

    www.domain.de/dynamisch/index.php?p1=v1;p2=v2;pn=vn

    In meinem Verzeichnis www.domain.de/verzeichnis liegt außer der .htaccess nichts drin. Ist also sozusagen nur ein Dummyverzeichnis. Die Länge und Reihenfolge der Parameterpaare px/vx soll dabei variabel bleiben.

    Alle Beispiele die ich hier gefunden habe beruhen ja auf der Annahme, dass die Anzahl und Reihenfolge der Parameter bekannt und immer gleich ist.

    Danke schon mal

    Martin

  • #2
    PHP-Code:
    //nur kopiert
      
    RewriteEngine on
       RewriteCond 
    %{REQUEST_URIuser/(.*)$
       
    RewriteRule user/(.*)$ /user.php?id=$
    http://foo.bar/user.php?id=baz
    http://foo.bar/user/baz
    mfg
    marc75

    <Platz für anderes>

    Kommentar


    • #3
      Hi Marc,

      danke für Deine Antwort. Aber ich glaube Du hast mein Problem falsch verstanden. Oder Du kannst mir Deine Lösung mal näher erklären.

      Vielleicht hat ja noch jemand eine Idee?

      cu

      Martin

      Kommentar


      • #4
        mal zwischendurch

        PHP-Code:
        p1=v1;p2=v2;pn=vn 
        das funktioniert? dachte immer & wäre der trenner
        mfg
        marc75

        <Platz für anderes>

        Kommentar


        • #5
          Original geschrieben von marc75
          das funktioniert? dachte immer & wäre der trenner
          ...

          ja, funzt einwandfrei - und ist meiner meinung nach leichter zu lesen. Ist im Perl-Modul CGI.pm auch als newstyle-URL geführt.

          cu

          Kommentar


          • #6
            na dann nochmal eine Erklärung zu dem Code oben.


            wenn du folgenden Link aufrufst

            www.domain.de/verzeichnis/p1/v1/p2/v2/pn/vn

            wandelt apache die url Anhand der Rule automatisch in ->

            http://www.domain.de/dynamisch/index...v1;p2=v2;pn=vn

            um.


            PHP-Code:
            #Beispiel Rule für htaccess
            RewriteEngine on
               RewriteCond 
            %{REQUEST_URIuser/(.*)$
               
            RewriteRule user/(.*)$ /user.php?id=$1


            //du klickst auf:
            [url]http://foo.bar/user/baz[/url]

            //Apache ruft dann folgenden Link auf (nicht im Browser sichtbar):
            [url]http://foo.bar/user.php?id=baz[/url] 

            //Die Rule musste halt für deine Zwecke anpassen.

            (.*)$ steht für id=$1 in deinem Fall p1=v1 
            mfg
            marc75

            <Platz für anderes>

            Kommentar


            • #7
              Original geschrieben von marc75

              //Die Rule musste halt für deine Zwecke anpassen.
              Moin!
              Dein Beispiel verarbeitet aber leider nur ein Variablen/Werte-Paar. Soweit war ich schon. Mein Problem ist aber, dass ich manchmal eben mehrere (beliebig) Wertepaare habe

              www.domain.de/verzeichnis/p1/v1/p2/v2/p3/v3/p4/v4/pn/vn

              und manchmal eben nur ein Paar

              www.domain.de/verzeichnis/p1/v1/

              Ich könnte natürlich für jede Möglichkeit eine Rule schreiben

              RewriteRule user/(.*)/(.*)$ /user.php?$1=$2
              RewriteRule user/(.*)/(.*)/(.*)/(.*)$ /user.php?$1=$2;$3=$4

              usw. Aber das ist mir zu unflexibel.

              Oder stehe ich irgendwie am Schlauch? Mit Deiner Lösung funzt es leider nicht. (für was ist eigentlich die RewriteCond ?)

              cu

              Martin

              Kommentar


              • #8
                http://www.domain.de/verzeichnis/p1/...v3/p4/v4/pn/vn
                www.domain.de/verzeichnis/p1/v1/

                du musst für jede möglichkeit eine eigene Rule schreiben, ist halt so.
                mfg
                marc75

                <Platz für anderes>

                Kommentar


                • #9
                  Original geschrieben von marc75

                  du musst für jede möglichkeit eine eigene Rule schreiben, ist halt so. [/B]
                  Nun, wenn das so ist, werde ich es wohl so hinnehmen ...

                  Ich habe auch noch gelesen, dass man die Regeln auch in eine externe Datei auslagern kann. Hat damit jemand Erfahrung?

                  Danke nochmals

                  Kommentar


                  • #10
                    Original geschrieben von martinr
                    Nun, wenn das so ist, werde ich es wohl so hinnehmen ...

                    Ich habe auch noch gelesen, dass man die Regeln auch in eine externe Datei auslagern kann. Hat damit jemand Erfahrung?

                    Danke nochmals
                    das ist mir neu, soweit ich weiss geht´s nur mit der .htaccess
                    mfg
                    marc75

                    <Platz für anderes>

                    Kommentar


                    • #11
                      ..

                      na dann hier mal ein link

                      http://httpd.apache.org/docs-2.0/misc/rewriteguide.html

                      falls noch nicht bekannt

                      Ich habe es jetzt so gelöst, dass ich alle Variablen an das Skript übergebe und im Skript einfach aufdrösle ...

                      Danke

                      Kommentar

                      Lädt...
                      X