url estatica con Mod Rewrite y htaccess

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 .htaccess 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.

Ejemplos:


Rewriterule ^pagina/(.*)\.html$ mipagina.php?id=$1

Rewriterule ^otra-pagina/(.*)\.html$ mipagina2.php?id=$1


Rewriterule ^pagina/(.*)\.html$ mipagina.php?id=$1

Rewriterule ^pagina-(.*)\.html$ mipagina2.php?id=$1

Articulos relacionados:


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.

Busqueda en el sitio
Advertisment ad adsense adlogger