Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/01/2006, 19:01
Avatar de uamistad
uamistad
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Sonrisa Yo prefiero mod_rewrite

Con mod_rewrite, sólo tendrías que meter en un archivo de texto llamado ".htaccess" el siguiente código:

Código:
RewriteEngine on
RewriteRule ^([a-z]+)(\.html)?/([0-9]+)/([0-9]+)$ http://www.tusitioweb.com/$1.php?id=$3pag=$4
Explicación:
El primer paréntesis ([a-z]) captura la palabra "archivo" (o sea el primer parámetro) o cualquier palabra que contenga puras letras, si quisieras que también incluyera números, quizá podrías cambiarla por algo como ([a-z0-9]+), el siguiente paréntesis puede tomar cualquiera de dos valores (por eso el signo de pregunta), ya sea que tu archivo incluya la terminación ".html" o bien no incluya terminación, tal como lo deseabas en tu ejemplo.

Los dos paréntesis siguientes toman el id y el número de página.

Ahora, después del símbolo "$" (fin de captura de URL), le dices al Apache que te reescriba tu URL haciendo referencia a los paréntesis con las variables $1, $2, $3, $4, según el paréntesis al que te quieras referir.

Nota cómo no usamos $2, ya que éste paréntesis sólo se utilizó para tener la opción de que el archivo incluya ".html" o no lo incluya, como quiera que sea.

Esto convierte: http://www.dominio.com/archivo.html/3/1
o bien: http://www.dominio.com/archivo/3/1
a esta: http://www.dominio.com/archivo.php?id=3&pag=1

Como vez, en sólo dos líneas del .htaccess tienes hecho el trabajo.

(edito 30 min. después) Acabo de ver que se puede poner el .htaccess en el mismo nivel de jerarguía en donde se localiza tu sitio, dentro de public_html

Lo he probado, ojalá tú también tengas éxito. Antes yo tenía muchos problemas con el ModRewrite, no entendía ningún manual, ojalá puedas implementarlo, ya que en pocas líneas tienes un gran poder de AMIGABILIDAD en tus URLS.

Un consejo adicional, cuando comiences a experimentar con el mod_rewrite, no trates de hacer tanto procesamiento, lo importante al principio es saber que SÍ funciona.

Para ello te recomiendo que pruebes con el siguiente .htaccess y si te redirecciona, ya sabrás que sí funciona y ya lo puedes ir complicando más y más.

Código:
RewriteEngine on
RewriteRule ^username/cocacola.html$ username/index.html
En donde index.html sea una página que SÍ EXISTA en tu server. O le puedes poner index.php o lo que quieras, pero que sí exista.

Ahora escribe en la barra de direcciones www.tudominio.com/cocacola.html y si te redirecciona, ya tienes hecho el primer paso.

COMENTARIO FINAL
Para hacer pruebas mientras desarrollas el código en tu PC, "username" es el nombre de la carpeta que incluye todo tu proyecto, y cuando pongas en la barra de direcciones:

http://localhost/carpetadetuproyecto/cocacola.html debería redireccionarte a la primera página de tu web, es decir: http://localhost/carpetadetuproyecto/index.html

Un saludo !

QUE ALGUIEN OPINE POR FAVOR
Seguramente es posible hacer todo esto sin necesidad de especificar un USERNAME o colocar la ruta completa de URL junto con el "http://bla-bla-bla", pero no sé cómo, si alguien puede opinar, estará de lux.

Última edición por uamistad; 15/01/2006 a las 19:54