Sebastian Salzgeber: mod_rewrite: Dynamisch Pfade umwandeln

Beitrag lesen

Hallo zusammen

MEine Frage geht dahin, dass ich gerne wissen würde, wie ich die htaccess schreiben muss, damit ich eine dynamische umwandlung von Pfadangaben zu parametern bekomme.

Bisher benutze ich dies hier:

  
	RewriteRule ^/?$ index.php?pMain=index [L]  
	RewriteRule ^([^/\.]+)/?$ index.php?pEnd=$1 [L]  
	RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&pEnd=$2 [L]  
	RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&p2=$2&pEnd=$3 [L]  
	RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&p2=$2&p3=$3&pEnd=$4 [L]  
	RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?p1=$1&p2=$2&p3=$3&p4=$4&pEnd=$5 [L]  

Damit bekomme ich folgende übersetzung hin:

  
example.com/eins/zwei/ => /index.php?p1=eins&pEnd=zwei  
example.com/eins/zwei/drei/ => /index.php?p1=eins&p2=zwei&pEnd=drei  
...  

Wie ihr seht, habe ich dies für 4 unterebenen angelegt, weswgeen sich die regexp auch so oft wiederholt und es mir möglich war, den letzetn parameter immer pEnd zu nennen.

Ich würde aber gerne wissen, ob ich den Pfad nicht auch mit einer einzigen RewriteRule umschreiben könnte; Ich also jetzt nicht diese Zeile quasi 20x widerholen muss, nur um auch in der 20. Ebene noch eine umleitung zu bekommen. Das ist ja doch sehr manuell was ich da gemacht habe.

Ich weiss dass einige Model View Controller, auf diese Weise, die Pfade zum laden der Module in PHP extrahieren. Aber geht da snicht auch in der .htaccess-Datei?

Was ich letzlich haben möchte ist:

  
example.com/eins/zwei/ => /index.php?p1=eins&p2=zwei    //Was aktuell ja quasi schon manuell geht  
example.com/eins/zwei/drei/hund/katze/maus/ => /index.php?p1=eins&p1=zwei&p3=drei&p4=hund&p5=katze&p6=maus  
...  

Schönen Sonntag
Sebastian S.