Foros del Web » Programando para Internet » PHP » CodeIgniter »

URL en Codeigniter

Estas en el tema de URL en Codeigniter en el foro de CodeIgniter en Foros del Web. Hola: Tengo el siguiente problema, estoy desarrollando un siete de venta de productos , con Codeigniter siguiendo está estructura para las urls(http://myproyect.com/index.php/product/product_view/36) donde el 36 ...
  #1 (permalink)  
Antiguo 06/06/2011, 06:28
 
Fecha de Ingreso: julio-2010
Mensajes: 41
Antigüedad: 14 años, 5 meses
Puntos: 7
URL en Codeigniter

Hola:
Tengo el siguiente problema, estoy desarrollando un siete de venta de productos , con Codeigniter siguiendo está estructura para las urls(http://myproyect.com/index.php/product/product_view/36) donde el 36 es el id del producto que quiero listar y el cliente me pide que las urls sean de este tipo(http://myproyect.com/digestgold/enzymedica-digest-gold-240-capsules.html o .php)
Donde:
Digestgold es la categoría y enzymedica-digest-gold-240-capsules es el título del producto, me ha dicho que esto es con el fin de mejorar el posicionamiento en google
Me gustaría saber cómo puedo hacer esto con codeigniter y la posibilidad de lograrlo sin tener que reprogramar toda la aplicación
  #2 (permalink)  
Antiguo 06/06/2011, 06:42
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: URL en Codeigniter

Hola buenas,

Por lo que se, tendrías que editar tu fichero .httacces, y en tu CI tendrías que poner por ejemplo, por GET esos valores ( categoría y nombre de producto ), luego si quieres el id al final, en el caso de que se puedan repetir títulos..

Un saludo!
  #3 (permalink)  
Antiguo 06/06/2011, 06:56
 
Fecha de Ingreso: julio-2010
Mensajes: 41
Antigüedad: 14 años, 5 meses
Puntos: 7
Respuesta: URL en Codeigniter

Gracias por responder, si pudieras darme algún ejemplo es que no tengo experiencia con el fichero .httaccess
  #4 (permalink)  
Antiguo 06/06/2011, 07:47
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: URL en Codeigniter

Vas a tener que usar routes tambien, para pasar la url como parametro(Obviamente tiene que estar guardada en tu tabla para hacer el request).

Este es mi htaccess:

Código PHP:
Ver original
  1. Options +FollowSymLinks
  2. Options -Indexes
  3. DirectoryIndex index.php
  4. RewriteEngine on
  5.  
  6.  
  7. RewriteCond $1 !^(ci\index\.php|images|styles|robots\.txt|favicon\.ico)
  8. RewriteCond %{REQUEST_FILENAME} !-f
  9. RewriteCond %{REQUEST_FILENAME} !-d
  10. RewriteRule ^(.*)$ index.php/$1 [L,QSA]
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 06/06/2011, 08:09
 
Fecha de Ingreso: julio-2010
Mensajes: 41
Antigüedad: 14 años, 5 meses
Puntos: 7
Respuesta: URL en Codeigniter

Gracias NUCKLEAR por responder, lo voy a probar y luego les comento como me fue
  #6 (permalink)  
Antiguo 07/06/2011, 18:37
 
Fecha de Ingreso: julio-2010
Mensajes: 41
Antigüedad: 14 años, 5 meses
Puntos: 7
Respuesta: URL en Codeigniter

Hola:
Me ha ayudado mucho pero tengo aun un problema, tengo la siguiente regla en mi routes.php
Código PHP:
$route['product/(:any)/(:num)'] = 'product/add_to_cart_view/$2'
Y mi link
Código PHP:
<a href="<?php echo base_url() ?>product/<?php echo url_title($product['title'], 'underscore'); ?>/<?php echo $product['id_product']; ?>" style="font-size: 10pt;"><?php echo $product['title']; ?></a>
Esto me funciona bien pero el problema es que no quiero mostrar en la url del navegador el id del producto o sea el 2do parámetro pero si enviarlo de alguna forma pues me hace falta para ejecutar mi consulta, no me basta con el title del producto que es el primer parámetro porque no tengo certeza de que sea único
Gracias por todo
  #7 (permalink)  
Antiguo 07/06/2011, 22:12
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: URL en Codeigniter

No hay nada mágico que te pueda distinguir dos url iguales. O le mandas la url con la id(unica) o la url solamente.
La idea es que la url este guardado como un campo, luego hagas la busqueda.
Ahora antes de guardar la url y evitar el duplicado, debes antes buscar coincidencias, si la hay agregas un distintivo.

Saludos.
__________________
Drupal Argentina
  #8 (permalink)  
Antiguo 09/06/2011, 14:31
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 1 mes
Puntos: 43
Respuesta: URL en Codeigniter

NUCKLEAR,
me generaste una duda jeje, con el las reglas del router solamente segun lo que decis, no se va a poder hacer esto:
url original -> sitio.com/producto/ver/categoria/1/nombre/ropa/id/1/nombre/camiseta

url "routeada" -> sitio.com/productos/ropa/camiseta
  #9 (permalink)  
Antiguo 10/06/2011, 08:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 24
Respuesta: URL en Codeigniter

Holas.

Añado algo. Para este tipo de situaciones lo que se usa como dato de busqueda es el string y no el id(aunque a veces el id no es numerico). Si te sirve en la base de datos crea un indice de propiedad unica en la columna que lleve estos nombres asi evitas que se repitan, y ademas como todo indice agiliza las consultas.

Nada mas, saludos
  #10 (permalink)  
Antiguo 13/06/2011, 06:04
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 1 mes
Puntos: 43
Respuesta: URL en Codeigniter

vuelo a preguntar, para este tipo de url no se puede usar solamente el router, o no queda otra que almacenar las url en la base de datos y cada vez que se ingresa se tiene que buscar y redireccionar?

salu2
  #11 (permalink)  
Antiguo 13/06/2011, 09:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 24
Respuesta: URL en Codeigniter

Holas,

El controlador puede tomar los parametros de la url y recien ahi haces la busqueda. No conviene guardar las urls en la base de datos.

Por ej. si vos queres una url como:
sitio.com/productos/ropa/camiseta

El router no puede convertirlo a:
sitio.com/producto/ver/categoria/1/nombre/ropa/id/1/nombre/camiseta
Porque no tiene forma de saber los ids numericos sin consultar a la db.

Entonces lo que te queda es convertirlo a algo como:
sitio.com/seccion/productos/categoria/ropa/objeto/camiseta

Tu controlador podria tomar esos parametros como
seccion = productos
categoria = ropa
objeto = camiseta

Con esos datos vos haces la consulta a la db para traer la informacion, sin utilizar ids. Es por eso que si se utiliza con frecuencia estos datos para consultas conviene crear indices en las columnas para agilizar las consultas.

bye

Etiquetas: frameworks-y-php-orientado-a-objetos
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 07:34.