mod_rewrite mit variabler Struktur

Sooo, ich habe nun lange an den Sachen experimentiert...

Ich habe mich gefragt, ob es möglich währe, dass man von rechts nach links Prüfungen einbauen kann, die den Wert prüfen.


Beispiel:

Code:
RewriteCond %{REQUEST_URI} ^/(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*).html
RewriteRule ^(.*) /index.php?site=%1&show=%2&id=%3&entry=%4&language=%5&filter=%6&session=%7&message=%8

Nun würde ich gerne bei %8 beginnen eine Prüfung durchzuführen... Sodass URLs von folgender Struktur möglich sind:

http://www.domain.de/muh,test.html
http://www.domain.de/muh.html
http://www.domain.de/muh,0,132.html

Es soll dann einfach so sein, dass bei einem lehren Wert einfach die 0 angehangen wird. Aber das regel ich mit php.


Die Idee:

Es sollen unnötige 0 aus der URl verschwinden. Da meistens die letzten 3 Werte zu 95% immer 0 sein werden, fände ich so eine Lösung nicht übel.

Zumal ich gehört habe, dass durch zu viele 0en die Suchmaschinen-Bots gehindert werden...


Danke
 
Wie bereits erwähnt, muss du die einzelnen Teile als optional deklarieren:
Code:
RewriteRule   ^([^,]+)(?:,([^,]+))?(?:,([^,]+))?(?:,([^,]+))?(?:,([^,]+))?(?:,([^,]+))?(?:,([^,]+))?(?:,([^,]+))?\.html$   /index.php?site=$1&show=$2&id=$3&entry=$4&language=$5&filter=$6&session=$7&message=$8   [L]
Oder du zerlegst es in alle möglichen Varianten:
Code:
RewriteRule   ^([^,]+)\.html$   /index.php?site=$1   [L]
RewriteRule   ^([^,]+),([^,]+)\.html$   /index.php?site=$1&show=$2   [L]
…
RewriteRule   ^([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)\.html$   /index.php?site=$1&show=$2&id=$3&entry=$4&language=$5&filter=$6&session=$7&message=$8   [L]
 
Zurück