jogo-web: mod_rewrite mit mehreren Parametern

Ich habe folgendes Problem:

Eine Website soll komplett über die Index-PHP im Root der Domain erreichbar sein. Der einzelne Inhalt soll über einzelne Parameter in der URL abgerufen werden. Zum Beispiel:

http://example.com/index.php?p1=test1&p2=test2

Daraus soll dann per mod_rewrite die URL

http://example.com/test1/test2

werden. Soweit kriege ich das auch noch hin, jetzt möchte ich aber, das das ganze für praktisch unbegrenzt viele Parameter (1 - ∞) nach diesem Schema funktioniert und das das ganze jeweils mit und ohne abschließendem Slash funktioniert.

  1. hi,

    http://example.com/index.php?p1=test1&p2=test2
    http://example.com/test1/test2

    Kurze Frage: Soll beides funktionieren?

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. Hi!

    http://example.com/index.php?p1=test1&p2=test2
    Daraus soll dann per mod_rewrite die URL
    http://example.com/test1/test2
    werden. Soweit kriege ich das auch noch hin, jetzt möchte ich aber, das das ganze für praktisch unbegrenzt viele Parameter (1 - ∞) nach diesem Schema funktioniert und das das ganze jeweils mit und ohne abschließendem Slash funktioniert.

    Unbegrenzt viel geht nach diesem Schema nicht, nur genau definierte Mengen. Für unbegrenzt musst du generisch auf index.php/$1 umschreiben und im Script die PathInfo selbst auswerten.

    Lo!

    1. moin,

      werden. Soweit kriege ich das auch noch hin, jetzt möchte ich aber, das das ganze für praktisch unbegrenzt viele Parameter (1 - ∞) nach diesem Schema funktioniert und das das ganze jeweils mit und ohne abschließendem Slash funktioniert.

      Unbegrenzt viel geht nach diesem Schema nicht, nur genau definierte Mengen.

      Wenn Du auf Parameter verzichtest und index.php nur mit dem REQUEST_URI steuerst, geht das auch unbegrenzt.

      Hotti

      1. Hi!

        Soweit kriege ich das auch noch hin, jetzt möchte ich aber, das das ganze für praktisch unbegrenzt viele Parameter (1 - ∞) nach diesem Schema funktioniert und das das ganze jeweils mit und ohne abschließendem Slash funktioniert.
        Unbegrenzt viel geht nach diesem Schema nicht, nur genau definierte Mengen.
        Wenn Du auf Parameter verzichtest und index.php nur mit dem REQUEST_URI steuerst, geht das auch unbegrenzt.

        Zum einen ging es dem OP eigentlich um eine unbegrenzte Parameterübergabe - die geht technisch und praktikabel wirklich nicht unbegrenzt. Für jede Anzahl Parameter wäre eine eigene RewriteRule notwendig. Und zum anderen sagte ich doch in dem von dir nicht mehr zitierten Teil eine alternative Herangehensweise, nämlich die PathInfo auszuwerten und (implizit gesagt) auf die Parameter zu verzicht. Ob man PathInfo oder REQUEST_URI auswertet, muss man sehen.

        Lo!

        1. hi,

          [..] und (implizit gesagt) auf die Parameter zu verzicht. Ob man PathInfo oder REQUEST_URI auswertet, muss man sehen.

          Der Verzicht auf Parameter ergibt letztendlich eine verblüffend einfache Lösung, da ich gerade an einem solchen Projekt dran bin:

          Server:
          _eine RewriteCond für die Ausnahmen (Loops vermeiden)
          _eine RewriteRule die alles auf ein Script umschreibt

          Features:
          die Zurodnung URI <=> Content wird eineindeutig,
          einfache Festlegung ob URI mit oder ohne trailing slash erreichbar (ausgenommen root, hier gibt es immer einen leading = trailing slash),
          Last-Modified Management,
          integriertes Not Found Management (das setzt jedoch voraus, dass mit dem Script ein 404-Header gesendet werden kann),
          Objektorientiert, einfache Pflege.

          Für 'Freunde der relativen Pfadangaben': ein <img src="logo.jpg"> funktioniert nur mit URI /foo, /bar... also am root und nicht mit /foo/bar; hier also src="/logo.jpg" notieren ;)

          Hotti