Dann mal aufgedröselt das Ganze.
Was macht
Code:
RewriteRule <match> <redirect-to>
eigentlich?
Ich habe schonmal zwei Platzhalter eingefügt, die das Lesen ein wenig erleichtern sollten.
<match> ist ein sogenannter "Regulärer Ausdruck", der auf die URL oben angewendet wird. Dieser Ausdruck erkennt eben nicht nur statische Zeichenketten, sondern auch variable, oder genauer:
Ein regulärer Ausdruck (englisch regular expression, abgekürzt RegExp oder Regex) ist in der Informatik eine Zeichenkette, die der Beschreibung von Mengen von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln dient.
Also Basics zu Regulären Ausdrücken sind schonmal Pflicht, ich erkläre nur kurz diesen Regex:
Code:
^user/(\w+)$
^ Zeichenkettenanfang
user/ feste Zeichenfolge "user/"
(\w+) Mindestens(aber auch mehrere) ein Buchstabe, eine Ziffer oder der Unterstrich
$ Zeichenkettenende
Nun zum <redirect-to>:
Da sollte nun die URL stehen, zu der sozusagen "weitergeleitet" werden soll, wenn der vorhergehende Ausdruck gefunden wurde.
Die Sache mit den Klammern: Wie du siehst, habe ich in der URL ein $1 eingebaut. Diese Variable enthält das, was in dem regulären Ausdruck (<match>) in Klammern steht bzw. deren tatsächliche Ersetzung. In unserem Fall also (\w+), was dem Usernamen entsprechen würde.
Übrigens: Würden in dem Ausdruck mehrere Klammern vorkommen, würde es auch dazu entsprechende variablen geben ($2, $3, $n)