Mod_Rewrite Problem!

Belee

Lt. Commander
Registriert
Dez. 2006
Beiträge
1.518
Hallo

Da ich mich mit der Materie noch nicht so gut auskenne bzw. verstehe, hoffe ich das sich hier jemand findet der mir folgendes erklären könnte....

Warum funktioniert das nicht bzw. nicht richtig?

Code:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
 
 
//Das funktioniert ....
//Die Links sehen so aus: chan1 , chan2 , chan3
//Original URL1: index.php?lc=chan1&rc=chan1&tp=chan1
//Original URL2: index.php?lc=chan2&rc=chan2&tp=chan2
//Original URL3: index.php?lc=chan3&rc=chan3&tp=chan3
 
RewriteRule ^chan(.*)$ index.php?lc=chan$1&rc=chan$1&tp=chan$1 [L]
RewriteRule ^chan(.*)$ index.php?lc=chan$1&rc=chan$1&tp=chan$1 [L]
RewriteRule ^chan(.*)$ index.php?lc=chan$1&rc=chan$1&tp=chan$1 [L]
 
//Wenn ich jetzt aber noch einen weiteren Rule definiere der z.B. aus
//aussieht...
 
RewriteRule ^chan(.*)_test$ index.php?lc=chan$1&rc=chan$1&tp=chan$1&chantest=$1 [L]
 
//Original URL: index.php?lc=chan1&rc=chan1&tp=chan1&chantest=1
 
//Funktioniert er nicht, er funktioniert wenn ich die obigen deaktiviere, es funktioniert
//also immer nur das oben oder das untere. Beides nicht, wird beides gelassen 
//funktioniert nur der Rule oben der untere öffnet nur die Startseite.
 
RewriteCond gilt im Normalfall nur für die nächste RewriteRule Regel. Daher kommt das meissens an den Schluss.

Zudem macht der Regex wenig Sinn:
^chan(.*)$

Du sagst es soll mit chan anfangen - lässt aber bis zum Ende beliebige Zeichen zu. Das matched natürlich auch chan_asd_test.
 
Aha, dann muss ich das also so machen?

Code:
RewriteRule ^chan([0-9])_blabla$ index.php?lc=chan$1&rc=chan$1&tp=chan$1 [L]

Funktioniert so jetzt gut nur ob das richtig ist.
Ergänzung ()

Eine Frage hätte ich dazu noch, was bedeutet z.B. ein "+"? also

([a-z]+)

Was sagt das Plus aus? habe jetzt eine Menge gelesen aber irgendwie gibt es nirgendwo eine 100% Beschreibung, alle schreiben irgendiwe das selbe nur keine geht ins Detail.
 
Zurück
Oben