Foros del Web » Programando para Internet » PHP »

Duda con URL´s amigables!

Estas en el tema de Duda con URL´s amigables! en el foro de PHP en Foros del Web. Hola a todos! Éste foro lo vengo viendo hace muchisimo y me ha sido de mucha utilidad, pero me decidi a registrarme ya que tengo ...
  #1 (permalink)  
Antiguo 05/05/2007, 18:00
 
Fecha de Ingreso: mayo-2007
Mensajes: 6
Antigüedad: 17 años, 6 meses
Puntos: 0
Duda con URL´s amigables!

Hola a todos!
Éste foro lo vengo viendo hace muchisimo y me ha sido de mucha utilidad, pero me decidi a registrarme ya que tengo una duda con una web que tengo y queria ver si alguien me podria ayudar.
Tengo una web algo similar a lo que voy a detallar a continuacion, aunque los ejemplos que doy son un HIPER resumen de lo que es mi web, solo que lo hago asi para que sea corto y lo puedan entender.
Supongamos que es un portal de noticias. La web esta echa con PHP y MySql. Las noticias las guardo en la base de datos de la siguiente manera:

Utilizo dos tablas:

CATEGORIAS
------------------------------
id_cat |categoria
1 | Musica
2 | Internet Y Tecnologia
3 | Deportes


NOTICIAS
------------------------------
id_noticia | id_categoria | titulo | noticia |
1 | 1 | titulo noticia 1 | texto noticia 1... |
2 | 1 | titulo noticia 2 | texto noticia 2... |
3 | 3 | titulo noticia 3 | texto noticia 3... |
4 | 2 | titulo noticia 4 | texto noticia 4... |
-------------------------------------------------------------------


Actualmente las URL´s que tengo son:

ROOT/noticias.php?categoria=1 (Muestra los titulos de todas las noticias de la categoria MUSICA)
ROOT/noticias.php?categoria=2 (Muestra los titulos de todas las noticias de la categoria INTERNET)
ROOT/noticias.php?categoria=3 (Muestra los titulos de todas las noticias de la categoria DEPORTES)

Cada titulo tiene un link a su respectiva noticia que esta en la url textnoticia.php
Por ejemplo:

ROOT/textonoticia.php?categoria=1&noticia=1 (Muestra la noticia 1)
ROOT/textonoticia.php?categoria=1&noticia=2 (Muestra la noticia 2)
ROOT/textonoticia.php?categoria=3&noticia=3 (Muestra la noticia 3)
etc.. etc..

(Se que no hace falta colocar la variable "categoria" en esta segunda url, pero es que desde el principio lo hice asi y bueh, los buscadores ya me la tomaron asi y tenia miedo en cambiarla.
Todo porque en la pagina queria mostar el nombre de la catetegoria)

Y ahora me decidí a pasar mis url para que sean amigables y quisiera que sean del siguiente estilo:

ROOT/musica REEMPLAZE A: ROOT/noticias.php?categoria=1
ROOT/internet-y-tecnologia REEMPLAZE A: ROOT/noticias.php?categoria=2
ROOT/deportes REEMPLAZE A: ROOT/noticias.php?categoria=3

Y ademas...
ROOT/musica/titulo-noticia-1 REEMPLAZE A: ROOT/textonoticia.php?categoria=1&noticia=1
ROOT/musica/titulo-noticia-2 REEMPLAZE A: ROOT/textonoticia.php?categoria=1&noticia=2
ROOT/internet-y-tecnologia/titulo-noticia-1 REEMPLAZE A: ROOT/textonoticia.php?categoria=3&noticia=3
ROOT/deportes/titulo-noticia-1 REEMPLAZE A: ROOT/textonoticia.php?categoria=2&noticia=4


Se que tengo que usar el mod_rewrite y el .htacces pero mucho no entiendo como hacer para que me aparezcan los titulos en la URL y no los ID's, ya que desde un principio empece a utilizar los id´s y no los titulos por miedo a que se repitan algunos titulos.

PD: Lo que quiero hacer es algo muy parecido a lo que hace letrascanciones .org con sus letras de canciones

Bueno espero que me hayan entendido ya que la explicacion fue bastante larga, pero trate de que sea los mas entendible posible, y que alguien me pueda ayudar :)
Ya que este foro me ha servido de muchisimas cosas, espero que me sirva para una mas! :)

Saludos!
  #2 (permalink)  
Antiguo 06/05/2007, 01:26
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Duda con URL´s amigables!

Si quieres manejar los titulos en el URL va a estar dificil hacerlo todo con mod_rewrite, en este caso la tecnica que te recomiendo es que en el .htaccess interceptes el Error 404 con uno de tus scripts.

ErrorDocument /path/de/tu/script.php

En el script que definas para manejar el Error 404 debes parsear el $_REQUEST["REQUEST_URI"] y si encuentras algo que coincida con el URL del nombre de la cancion (estarias un poco forzado a hacer un lazy-match), entonces puedes enviar el contenido solicitado.

Esta tecnica tambien se usa para presentar las pantallas de error personalizadas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.