Dies lässt sich mit der Direktive mod_rewrite in Ihrer .htaccess-Datei umsetzen. Dazu muss Ihre .htaccess-Datei die folgenden Zeilen enthalten, wobei jede Direktive in einer eigenen Zeile steht:
RewriteEngine On
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
EXPLANATION:
RewriteEngine On
Die erste Zeile stellt sicher, dass Ihre RewriteEngine eingeschaltet ist.
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
Die zweite Zeile ist wie folgt aufgebaut:
^blog/ - stellt sicher, dass am Anfang der Zeichenfolge nach dem Begriff blog gesucht wird
([0-9]+) - sucht nach einer Folge von Ziffern von 0 bis 9. Das + am Ende sorgt dafür, dass sich wiederholende Ziffern ein- oder mehrmals erkannt werden, also zum Beispiel im Fall von 2007.
([a-z]+)$ - sucht nach einer Eingabe in Kleinbuchstaben. Das + am Ende sorgt dafür, dass sich wiederholende Buchstaben ein- oder mehrmals erkannt werden, also zum Beispiel im Fall von Tree. In diesem Beispiel spielt die Groß- und Kleinschreibung keine Rolle, da wir am Ende der Regel eine entsprechende Angabe ergänzt haben. Das Dollarzeichen am Ende weist die Direktive lediglich an, nach dem Zeilenende zu suchen.
/blog/index.php?year=$1&month=$2 - hierin wird die URL von der Website umgesetzt, wobei $1 die erste empfangene Eingabe ist, in diesem Fall 2007, und $2 die zweite empfangene Eingabe, in diesem Fall jan.
[nc] - Dies steht für "no case", also "nicht zwischen Groß- und Kleinschreibung unterscheiden". Steht dieser Zusatz am Ende der Regel, spielt die Schreibweise der Eingabe keine Rolle. Zum Beispiel http://www.example.com/blog/2007/JaN wird genauso behandelt wie http://www.example.com/blog/2007/jan.
Dies lässt sich mithilfe von regulären Ausdrücken (Regex/Regexp) leicht erweitern, sodass viele verschiedene Arten von Eingaben allgemeiner oder genauer erfasst werden. Weitere Informationen zu Regex und zu seiner Verwendung finden Sie unter:
http://www.regular-expressions.info/tutorial.html
Ausführlichere Informationen zur Direktive mod_rewrite finden Sie außerdem unter:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html