Nuestro conocimiento compartido. Nuestro tesoro compartido. Wikipedia.
TreeWeb::Artículos::Apache::mod-rewrite para URL amigable
Permalink: http://www.treeweb.es/u/855/ 23/11/2010

mod-rewrite para URL amigable

Activar el módulo apache

Primero añadimos el módulo
sudo a2enmod rewrite
Editamos el archivo '/etc/apache2/sites-enabled/000-default' y sustituimos AllowOverride None por AllowOverride All
DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>

Crear la reescritura de url en .htaccess

Creamos un archivo .htaccess en el directorio en el que se van a empezar a procesar urls. Y también creamos un archivo index.php que será al que enviaremos las peticiones de url.
RewriteEngine On RewriteCond %{REQUEST_URI} !/dir1|/dir2 RewriteRule (.*) index.php?ruta=$1 [L,QSA]
La parte /dir1|/dir2 significa que NO procesará las urls que tengan /dir1 ó /dir2 .

NOTA: El archivo .htaccess debe tener codificación ascii

Procesar la url en index.php

Ahora al archivo index.php recibirá la url en una variable GET.
<?php echo $_GET['ruta']; ?>
A la hora de procesar la url puede sernos útil la función explode (http://es2.php.net/manual/es/function.explode.php) que divide una cadena a partir de un caracter dado y devuelve un array con todas las subcadenas.
Por ejemplo:
<?php $subcadenas = explode('/', $_GET['ruta']); foreach ($subcadenas as $sc) echo "$sc<br>"; ?>