Veremos un ejemplo simple de como utilizar el modulo de apache "Mod_Rewrite", que nos permite crear reglas que serán procesadas por el servidor (siempre que este sea un servidor Linux)
Supongamos que nuestra url actual es de esta forma:
http://www.supagina.com/web/index.php?mod=news&id=2345
Y queremos cambiarla por esta otra:
http://www.mipagina.com/web/noticias/2345.html
Entonces deberíamos crear el directorio "noticias" (sin comillas) y allí subir un archivo .htaccess con la siguiente regla
RewriteEngine on
RewriteBase /web/
RewriteRule ^noticias/(.*).html$ index.php?mod=news&id=$1
Si quisiéramos darle un poco mas de seguridad podríamos utilizar expresiones regulares más exactas, por ejemplo, que solo se permitan números entre 1 y 6 caracteres
RewriteEngine on
RewriteBase /web/
RewriteRule ^noticias/([0-9]{1,6}).html$ index.php?mod=news&id=$1
Jugando con expresiones regulares podrás adaptar todas tus URL's complejas a URL's fáciles de recordar.
Vale destacar que con este mismo modulo de apache podremos generar distintas acciones y no solo redireccionar URL, por ejemplo, con una simple línea podríamos denegar el ingreso a un directorio.
Deny from all
Esto ultimo se utiliza mucho en, por ejemplo, directorios en donde se guardan los módulos de un sitio, ya que podremos incluir el archivo desde php, pero un extraño no podrá ingresar al archivo tipeando su dirección.