PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [htaccess] - Reguläre Ausdrücke?



gruni
07-02-2009, 09:52
Aloha, ich beschäftige mich derzeit ein wenig mit htaccess-Dateien und wollte eine Ordnerstruktur nachempfinden. Bisher hab ich die Umwandlung hardcoded und habe noch keine Ideallösung gefunden, dies dynamisch und entsprechend auch "ins Unendliche" (Ich weiß, alles hat seine Grenzen) zu treiben. Hier das was ich momentan benutze:



RewriteRule ^([a-zA-Z0-9]+)$ index\.php?p1=$1 [L]
RewriteRule ^([a-zA-Z0-9]+)/$ index\.php?p1=$1 [L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index\.php?p1=$1&p2=$2 [L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index\.php?p1=$1&p2=$2 [L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index\.php?p1=$1&p2=$2&p3=$3 [L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index\.php?p1=$1&p2=$2&p3=$3 [L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index\.php?p1=$1&p2=$2&p3=$3&p4=$4 [L]
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index\.php?p1=$1&p2=$2&p3=$3&p4=$4 [L]

Ziel ist es, dass jeder weitere Parameter der in der Form: http://url.foo/PARAM1/PARAM2/PARAM3/... weitergegeben wird (egal ob mit End-Slash oder nicht) so umgesetzt wird: index.php?p1=PARAM1&p2=PARAM2&p3=PARAM3

Jemand ne elegantere Lösung als mein Brachialversuch?

Danke im Voraus. :)

msi
07-02-2009, 23:28
ich würde alles dem php skript als ein parameter übergeben,

also

index.php?p=PARAM1/PARAM2/PARAM3

usw. denke du hast verstanden was ich mein. im php
skript kannst das dann splitten etc.

gruni
08-02-2009, 09:04
Stimmt, daran hatte ich gar nicht gedacht. ^^ Vielen Dank für den Denkanstoß.

Gruß, Gruni

edit: Gelöst hab ich es nun so...

.htaccess:

RewriteRule ^([a-zA-Z0-9/]+)$ index\.php?p=$1 [L]

index.php:

<?
// ...
$get = explode('/',$_GET['p']);
$_GET['p1'] = $get[0];
for ($i=1; $i < count($get)+1; $i++) {
$_GET['p'.$i] = $get[$i-1];
}
// ...
?>