Esto se puede lograr mediante la directiva mod_rewrite en su archivo .htaccess. Para ello, su archivo .htaccess debe contener las siguientes líneas, con una directiva por línea:
RewriteEngine On
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
EXPLANATION:
RewriteEngine On
La primera línea garantiza que RewriteEngine esté activado.
RewriteRule ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?year=$1&month=$2 [nc]
La segunda línea se explica a continuación:
^blog/ - garantiza que se examine el inicio de la cadena que comienza con blog
([0-9]+) - busca una serie de números del 0 al 9. El signo + al final garantiza que coincida con números repetidos una o más veces, es decir, el caso de 2007.
([a-z]+)$ - busca una entrada en letras minúsculas. El signo + al final garantiza que coincida con letras repetidas una o más veces, es decir, el caso de Tree. En este ejemplo, las mayúsculas y minúsculas no importan debido a lo que hemos agregado al final de la regla. El signo de dólar al final simplemente indica a la directiva que busque el final de la línea.
/blog/index.php?year=$1&month=$2 - esto es lo que el sitio web interpretará, donde $1 es la primera entrada recibida, en este caso 2007, y $2 es la segunda entrada recibida, en este caso jan.
[nc] - Significa "no case" o "sin distinción entre mayúsculas y minúsculas". Al incluirlo al final de la regla, no importa en qué caso esté escrita la entrada. Por ejemplo, http://www.example.com/blog/2007/JaN reaccionará igual que http://www.example.com/blog/2007/jan.
Esto se puede ampliar fácilmente para incluir muchos tipos de entrada diferentes, en términos más generales o específicos, mediante expresiones regulares (regex/regexp). Encontrará más información sobre las expresiones regulares y cómo usarlas en:
http://www.regular-expressions.info/tutorial.html
Además, puede encontrar información más completa sobre la directiva mod_rewrite en:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html