Mark: mod_rewrite - suchen und ersetzen

Hallo,

versuche mich mit mod_rewrite auseinander zu setzen, und wollte es auch gleich in der Praxis mit einer bereits bestehenden Seite umsetzen.

aus index.php?id1=1 soll also id1_1/index.htm werden bzw. umgedreht:
RewriteRule id1_(.*)/index.htm$ index.php?id1=$1 [L]

was mache ich aber wenn sich die Anzahl der Parameter ändert bzw. variiert, und ich z.B. id1_1-id2_158-id3_test/index.htm
gibt es eine Möglichkeit im RewriteRule den kompletten String zu holen und alle "_" durch "=", alle "-" durch "&" zu erstetzen?

Habe da nicht annähernd eine Ahnung wie ich ansetzen soll, hoffe mir kann da jemand weiterhelfen.

Gruß, Mark

  1. Hallo Mark,

    der Vorteil von mod_rewrite liegt nicht darin, cryptische Strings in ein anderes cryptisches Format zu überführen, sondern Rankingmechanismen von Suchmaschinen besser zu nutzen. So kann aus

    index.php?p1=Buch&p2=Kapitel4&p3=Seite104
    /Buch/Kapitel/Seite_104.html

    werden. Das ist so ziemlich der Standart. Ed gibt aber auch Möglichkeiten von vornherein sich ein paar Gedanken zu machen und mit der Variable $_SERVER['QUERY_STRING'] zu arbeiten:

    index.php?Buch_Kapitel_Seite104
    /Buch_Kapitel_Seite104.html

    Dabei entfallen die lästigen und im übrigen auch unnötigen Angaben der vormals global registrierten Variablen.

    RewriteRule ^(.*).html$ index.php?$1 [L]

    Gruß aus Berlin!
    eddi