Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > De url extensas a url amigables con Apache y PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

De url extensas a url amigables con Apache y PHP

 

Introducción

Los que programamos en PHP, o bajo cualquier otro lenguaje de programación orientado a web, por lo general tendemos a pasar datos de una web origen a otra destino mediante variables del tipo GET generando enlaces tal como:

http://www.tiperu.com/index.php?mod=ecommerce&producto=tienda&op=3

Que difícilmente son indexadas por algunos buscadores y lo que es peor aún: son nada asimilables por un usuario común (a este grupo de URL las llamaremos URL extensas para efectos del presente artículo). Si lo vemos desde esa perspectiva justo sería afirmar que las web dinámicas tienen desventajas en ese ambito sobre las web estáticas del tipo http://www.tiperu.com/ecommerce.html que son mucho más fáciles de recordar por su simpleza y carencia de variables vía GET, a este tipo de URL las conocemos (y me referiré a ellas en adelante) como URL amigables .

Quiero dejar en claro que lejos de la división convencional entre lo que son web estáticas o dinámicas en este manual me referiré a ambas en función a la diferencia de URL especificadas en el párrafo anterior - hecha la aclaración continuo con el artículo.

Felizmente para los que usamos Apache como servidor web, conjuntamente con PHP, esto tiene solución gracias al módulo mod_rewrite (URL Rewriting Engine) que nos permitirá mediante unas cuantas reglas transformar nuestras URL extensas en URL amigables.

Si bien es altamente aconsejable aprender el correcto manejo del mod_rewrite y sus correspondientes reglas, en este artículo no se hará explicación extensiva del mismo pues su objetivo principal, y claramente detallado en el título, es mostrar al lector cómo optimizar una web de URL extensas a URL amigables ; con esto quiero dejar a entender que se asume que el lector posee un website ya creado con URL extensas y desea pasarlas fácilmente a URL amigables “en un dos por tres” .

Preparando el archivo ".htaccess"

El archivo .htaccess nos permite pasarle información al servidor Apache para que cumpla ciertas reglas de configuración en la carpeta que lo contenga, por tal motivo debemos copiar este archivo en la carpeta que contengan los archivos php en los cuales realizaremos los cambio de URL:

  1. Options + FollowSymLinks
  2. RewriteEngine on
  3. #4 variables
  4. Rewriterule ^ ( .* ) / ( .* ) , ( .* ) / ( .* ) , ( .* ) / ( .* ) , ( .* ) / ( .* ) , ( .* ) /$ $ 1 .php?$ 2 =$ 3 &$ 4 =$ 5 &$ 6 =$ 7 &$ 8 =$ 9
  5. #3 variables
  6. Rewriterule ^ ( .* ) / ( .* ) , ( .* ) / ( .* ) , ( .* ) / ( .* ) , ( .* ) /$ $ 1 .php?$ 2 =$ 3 &$ 4 =$ 5 &$ 6 =$ 7
  7. #2 variables
  8. Rewriterule ^ ( .* ) / ( .* ) , ( .* ) / ( .* ) , ( .* ) /$ $ 1 .php?$ 2 =$ 3 &$ 4 =$ 5
  9. #1 variable
  10. Rewriterule ^ ( .* ) / ( .* ) , ( .* ) /$ $ 1 .php?$ 2 =$ 3

En las dos primeras líneas nos aseguramos de que esté activado el mod_rewrite en el Apache (si esto no funciona deberá comunicarse con su administrador para que active el módulo en el servidor).

Las líneas antecedidas por “#”, como las 3, 5, 7 y 9 ; son simplemente comentarios, no los tome en cuenta.

En las líneas 4, 6, 8 y 10 se establecen las reglas que nos permitirán tranformas nuestras URL extensas en amigables. Analizaremos aquella que permite transformar dos variables, las demás son similares:

Rewriterule ^(.*)/(.*),(.*)/(.*),(.*)/$ $1.php?$2=$3&$4=$5

La expresión en rojo es la nos permitirá escribir la regla en el Apache. La cadena en color verde oscuro permite escribirá la URL amigable, inicia desde el caracter ^ hasta el $ . Y finalmente la cadena en azul es nuestro URL extenso. La transformación se hará de la siguiente manera:

De URL extensa:
./index.php?categoria=monitores&productoID=12345

En URL amigable:
./index/categoria,monitores/productoID,12345/



Usuarios que han visto este tema también han visto...

- Números aleatorios en PHP
- Creación de una encuesta con PHP y MySQL
- Paginacion en PHP
- Crear una lista de carpetas con PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad
Congreso de Internet

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 10-09-2010 a las 15:41:01