En este tutorial veremos como cambiar nuestras urls dinamicas a estaticas para que nuestras paginas sean mas amigables a la hora de ser indexadas por los motores de busqueda.
Mod Rewrite.
Es un modulo del servidor Apache que cambiara la forma de visualizacion de nuestras direcciones dinamicas, tambien nos permite cambiar temporalmente la direccion de una pagina o hacer un redirect.
Simplemente tenemos que editar en el archivo .httaccess de la raiz del servidor y guardar las nuevas reglas de ModRewrite. En la mayoria de los casos el archivo .httaccess se encuentra en la carpeta "www/".
Editamos o creamos el archivo httaccess
No necesitamos un programa en especial, puedes utilizar el bloc de notas para editar este archivo.
Primero insertamos la linea que le dice al server que vamos a habilitar Mod Rewrite
Options +FollowSymLinks
RewriteEngine on
A continuacion escribimos la regla q va a interpretarse utlizando expresiones regulares aplicadas a Mod Rewrite
Las mas importantes son:
^ : Comienzo de una cadena
$ : Fin de una cadena
(.*) : Cualquier texto
Delimitadores
/: Barra (Slash)
No utilizar mucho este delimitador (ejemplo: pagina/1/sit/2/sec3/4.html) ya que pierde la relevancia de la url.
- : Guion
_ : Barra baja
Para el ejemplo de este tutorial cambiaremos la url dinamica : mipagina.php?id=1 a la url estatica: pagina/1.html
La sintaxis es la siguiente:
Rewriterule <secuencia a encontrar > <cadena para sustituir >
aplicando al ejemplo tenemos
Rewriterule ^pagina/(.*)\.html$ mipagina.php?id=$1
Explicando paso a paso:
Rewriterule indica que se va a generar una regla nueva
^ Inicio de la cadena
pagina/ un directorio falso
(.*) cualquier cadena de texto alfanumeria [0,1 , 2, ..] o [a,b,c,wert,fged,]
\. el punto es una expresión regular, para que sea interpretado como punto y no como expresión regular hay que “escaparlo” con la barra invertida
html la extension que llevara nuestra nueva url, podemos colocar cualquier extension, o no colocar extension
$ indica el final de la url a generar
mipagina.php la url real que cambiaremos
$1 la variable que va a tomar el primer parentesis . Podemos enviar mas variables ( $2, $3, $4)
Como resultado asi quedaria nuestro codigo en .httaccess :
Options +FollowSymLinks
RewriteEngine on
Rewriterule ^pagina/(.*)\.html$ mipagina.php?id=$1
Hacer mas de 1 regla ModRewrite
Para generar mas de 2 reglas , es importante comprender que no tenemos que repetir la misma sintaxis en las reglas siguientes; ya que esto nos traera problemas a la hora de que el servidor Apache interprete cual es la regla valida. Para esto podemos variar los delimitadores o simplemente hacer otras reglas.
Ejemplo:
Rewriterule ^pagina/(.*)\.html$ mipagina.php?id=$1
Rewriterule ^otra-pagina/(.*)\.html$ mipagina2.php?id=$1
o
Rewriterule ^pagina/(.*)\.html$ mipagina.php?id=$1
Rewriterule ^pagina-(.*)\.html$ mipagina2.php?id=$1
Espero q este tutorial sea de gran ayuda.
Autor: Daniel H.
Webmaster.
