elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  URLs Amigables a profundidad ? (solved)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: URLs Amigables a profundidad ? (solved)  (Leído 8,280 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
URLs Amigables a profundidad ? (solved)
« en: 6 Febrero 2011, 01:56 am »

Buenas...

Tengo algunos problemas para el proceso de profundizar las busquedas con "urls amigables", hasta ahorita logro con exito implementar urls amigables para la lectura de temas o bien la lectura de posts de una sección, por ejemplo:

Para Leer un tema, la url amigable es: http://misitio.com/hoja/idnoticia-nombre_del_tema.html
Para Leer una sección: http://misitio.com/sección/

Y utilizo el siguiente htaccess:
Código:
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteEngine on
RewriteBase /
RewriteRule ^(.+)/$ index.php?ver=$1 # aqui leemos una sección
RewriteRule ^hoja/(.+)\-(.+)\.html$ index.php?hoja=$1 # aqui leemos tema o noticia

Pero ahora quiero implementar la profundidas de modo que pueda por ejemplo acceder a contenido dentro de una sección, por ejemplo: tengo una sección en mi blog llamada BugTrack donde existen sub-temas dentro los cuales muestran otro contenido. Para acceder al contenido dentro de la sección invoco el siguiente url_amigable.

http://lab.sie-group.net/bugtrack/bug/IDDELBUG/

Como vemos esta url_amigable es de profundidas 1 en donde dentro de una sección hacemos una profundidad.

Con la finalidad de pode mostrar el contenido, implemento esta linea en el htaccess:

Código:
RewriteRule ^(.+)/(.+)/(.+)/$ index.php?ver=$1&$2=$3

En donde finalmente la url amigable http://lab.sie-group.net/bugtrack/bug/IDDELBUG/ intento traducirla asi: index.php?ver=bugtrack&bug=IDDELBUG.

Pero finalmente algo me falla :(, porque no me muestra el contenido :(, me sale sección no existe....

Saludos !

=== EDITADO ===

He impreso el valor $_GET["ver"] despues de la leyenda sección inexistente y me imprime esto: index.php, en donde se supone debe imprimir bugtrack que es el valor que debe tomar segun la linea que implemente en el htaccess.


« Última modificación: 8 Febrero 2011, 00:04 am por Diabliyo » En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: URLs Amigables a profundidad ?
« Respuesta #1 en: 6 Febrero 2011, 04:54 am »

mejor imprime el array $_GET y mira que contiene :p puede ser hasta error de dedo en el htaccess


En línea

Ojo por ojo, y el mundo acabará ciego.
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: URLs Amigables a profundidad ?
« Respuesta #2 en: 7 Febrero 2011, 21:46 pm »

mejor imprime el array $_GET y mira que contiene :p puede ser hasta error de dedo en el htaccess

No creo sea error de dedo en el htaccess ya que solo se agrego una linea extra, esta:

Código:
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteEngine on
RewriteBase /
RewriteRule ^(.+)/$ index.php?ver=$1
RewriteRule ^hoja/(.+)\-(.+)\.html$ index.php?hoja=$1

# profundidad de mas niveles
RewriteRule ^(.+)/(.+)/(.+)/$ index.php?ver=$1&$2=$3

Que es la que busco se pueda interpretar bien :(...

En fin  pongo lo obtenido por GET:
Código:
Array ( [ver] => index.php [bug] => 77mvza9892f ) 

Lo raro es que en la variable "ver" debe estar el nombre de la sección, que en este caso es "BugTrack"

=== EDITADO ===

Que rato, para que puediera acceder al contenido tuve que cambiar el htaccess la linea nueva y agregar esto (.+)\.html, vaya la invocacion de un html :S.... quedando ahora el htaccess asi:

Código:
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteEngine on
RewriteBase /
RewriteRule ^(.+)/$ index.php?ver=$1
RewriteRule ^hoja/(.+)\-(.+)\.html$ index.php?hoja=$1

# profundidad de mas niveles
RewriteRule ^(.+)/(.+)/(.+)/(.)\.html$ index.php?ver=$1&$2=$3

Ahora probare el AJAx porque el otro dia me tiro error, me mencionaba que no encontraba la funcion con la que cargo AJAX, al principio pense que el script.js no estaba bien puesto, pero si, tenia la url completa:

Código:
<script type="text/javascript" language="javascript" src="http://misitio.com/js/script.js"></script>

Ahorita les cuento !...
« Última modificación: 7 Febrero 2011, 21:57 pm por Diabliyo » En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: URLs Amigables a profundidad ?
« Respuesta #3 en: 7 Febrero 2011, 22:45 pm »

Bueno ahora el problema es con los AJAX :(...

Si estoy digamos en un lugar del sitio que no es el index.php, por ejemplo:

http://lab.sie-group.net/buacgtrack/

Al estar logeado como Administrador me permite ver un botón llamado Nueva Entrada el cual invoca un formulario en AJAX y me permite guardar la entrada para la sección BugTrack...

Pero en vez de cargarse el formulario me lanza el mensaje: La pagina que intentas cargar no existe... esto se debe a que ajax no encontro la pagina o algo, ya que asi implemento la funcion AJAX y pueden ver el mensaje:

NOTA IMPORTANTE: el sistema funciona sin las urls amigables, asi que no es error de dedo ni codigo....

Código
  1. function cargar_datos( vars, capaview, flujoddatos, varsform )
  2. {
  3. var conector, capa, url;
  4.  
  5. url= 'ajax.php'; //mis funciones para ajax
  6. capa= document.getElementById(capaview);
  7.  
  8. conector= ajax();
  9. conector.open( flujoddatos, url+'?'+vars, true );
  10. conector.onreadystatechange= function()
  11. {
  12. if( conector.readyState==1 )
  13. {
  14. capa.innerHTML= "<center><img src='admin/imagenes/loading.gif'><br><b>CARGANDO...</b></center>";
  15. }
  16. else if( conector.readyState==4 )
  17. {
  18. if( conector.status==200 )
  19. {
  20. if( varsform!=0 )
  21. conector.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
  22. capa.innerHTML= conector.responseText;
  23. }
  24. else if( conector.status==404 )
  25. {
  26. capa.innerHTML= "La pagina que intentas cargar no existe...";
  27. }
  28. else
  29. {
  30. capa.innerHTML= conector.status;
  31. }
  32. }
  33. }
  34. //conector.setRequestHeader( "Content-Type", "multipart/form-data" );
  35. if( varsform!=0 )
  36. {
  37. var myarr= varsform.split(':'); //dividimos
  38. var trama="";
  39. var i=0;
  40.  
  41. for( i=0; i<(myarr.length); i++ )
  42. {
  43. if( i>0 )
  44. trama += "&";
  45. trama += myarr[i]+"="+document.getElementById(myarr[i]).value;
  46. }
  47.  
  48. conector.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
  49. conector.send(trama);
  50. }
  51. else
  52. conector.send(null);
  53. }
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: URLs Amigables a profundidad ?
« Respuesta #4 en: 8 Febrero 2011, 00:04 am »

Lista al fin lo solucione :D...

Basandome en que las imagenes y estilos CSS deben ser llamados con su path completo, entonces le puse el url completo al ajax.php, con esto ya quedo bien.

Por otro lado, viendo la universalidad del codigo hice una funcion para obtener el $_SERVER['HTTP_HOST'] pero en javascript, y lo unico que se me ocurrio fue esto:

Código
  1. function get_http_host()
  2. {
  3. var httpsrc, x, y; //vars
  4. httpsrc= document.URL; // obtenemos url
  5. x= httpsrc.split('http://'); // explotamos el http
  6. y= x[1].split('/'); // explotamos slash
  7. return y[0]; // retornamos http del sitio
  8. }

Ya con esta la invocas al principio anteponiendole el http:// (al principio) y el /[/i] (al final) y armas tu url sin problemas y el AJAX ya funciona con las URLs amigables.

Saludos !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Urls Amigables (solo con el titulo)
PHP
Alex_bro 5 3,820 Último mensaje 23 Agosto 2007, 00:51 am
por Alex_bro
on() de jquery+htaccess+urls amigables... no consigo hacerlo...
Desarrollo Web
NataliaV 3 3,175 Último mensaje 17 Septiembre 2012, 20:34 pm
por MinusFour
problema urls amigables...
PHP
Rk_PetIT 0 1,565 Último mensaje 2 Agosto 2013, 00:35 am
por Rk_PetIT
urls amigables htaccess
Programación General
sirkiu 1 2,037 Último mensaje 11 Diciembre 2015, 19:48 pm
por sirkiu
[APORTE]: Cómo usar urls amigables con el servidor web incorporado a PHP
PHP
mchojrin 0 1,642 Último mensaje 19 Julio 2019, 00:54 am
por mchojrin
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines