Foros del Web » Administración de Sistemas » Apache »

PHPPaging_lib.php y Mod Rewrite

Estas en el tema de PHPPaging_lib.php y Mod Rewrite en el foro de Apache en Foros del Web. Hola a todos... Mi duda es la siguiente con el Mod_Rewrite de PHPPaging_lib.php. Tal vez éste tema corresponda al Foro de Apache, como tiene mezclado ...
  #1 (permalink)  
Antiguo 20/01/2009, 18:50
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 2 meses
Puntos: 3
PHPPaging_lib.php y Mod Rewrite

Hola a todos...

Mi duda es la siguiente con el Mod_Rewrite de PHPPaging_lib.php.

Tal vez éste tema corresponda al Foro de Apache, como tiene mezclado e interviene php no se bien dónde va. Cualquier cosa algún moderador amable lo trasladará y pido disculpas.

Hice los siguientes pasos:

Comprobé si en mi servidor funciona Mod Rewrite creando un .htaccess y poniendolo en el Directorio Raíz, es decir, donde está el index.php de mi Sitio. En el archivo .htaccess escribí lo sieguiente:

Código HTML:
RewriteEngine On
RewriteRule testpage\.html http://www.google.com [R]
Luego en el navegador introduje lo siguiente:

Código HTML:
http://www.misitio.com/testpage.html
y efectivamente me envió a la página de google.

Ahora bien, en la página donde tengo la paginación (funcionando perfectamente) he colocado lo siguiente:

Código PHP:
$paging->linkEstructura('bibliografia/pagina{n}.html'); 
Dicho archivo, se encuentra en esta ruta:

Código HTML:
www.misitio.com/pagina/articulos/bibliografia.php
Y las páginas de la paginación se muestran así (son 2 por ahora):

Código HTML:
www.misitio.com/pagina/articulos/bibliografia.php?page=1
www.misitio.com/pagina/articulos/bibliografia.php?page=2
En el .htaccess puse lo siguiente:

Código HTML:
RewriteEngine On
RewriteRule ^bibliografia/?(/pagina([0-9]+).html)?$ bibliografia.php?page=$2 [L]
Y no funciona... qué estoy haciendo mal?
  #2 (permalink)  
Antiguo 20/01/2009, 19:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: PHPPaging_lib.php y Mod Rewrite

Tu problema en si es tu RewriteRule.

Te muevo al foro de Apache para que te asesoren como hacerla.

Saludos.
  #3 (permalink)  
Antiguo 21/01/2009, 07:43
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: PHPPaging_lib.php y Mod Rewrite

Donde está ubicado tu .htaccess? (En que directorio) ¿Te aparece algún "Internal Error"?

  #4 (permalink)  
Antiguo 21/01/2009, 11:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 2 meses
Puntos: 3
Respuesta: PHPPaging_lib.php y Mod Rewrite

Hola okram...

El .htaccees está en el Directorio Raíz de mi Sitio, es decir, donde está el index.php

Sigo probando y dándole vueltas pero nada aún...

Saludos.-
  #5 (permalink)  
Antiguo 21/01/2009, 12:15
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: PHPPaging_lib.php y Mod Rewrite

Entonces tienes que poner la ruta relativa al directorio raíz de tu archivo php no?

Código apache:
Ver original
  1. RewriteEngine On
  2. RewriteRule ^bibliografia/?(/pagina([0-9]+).html)?$ pagina/articulos/bibliografia.php?page=$2 [L]
Ojo, que con el valor que le pasaste al método linkEstructura de la clase estás prácticamente creando el contenido del parámetro href del tag <a>. Y ahi tienes un problema.

Cuando esté en X página (/bibliografía/pagina2.html), los links generados apuntarán a /bibliografía/bibliografia/pagina3.html. Eso se debe a que estás colocando una ruta relativa, y dado que en tu htaccess haces como si bibliografia fuese una carpeta, los links son relativos entonces a dicha seudo-carpeta.

Eso lo solucionas agregando un tag <base> a tu head, o definiendo rutas absolutas para los links del paginador:

Código PHP:
$paging->linkEstructura('http://www.misitio.com/bibliografia/pagina{n}.html'); 
  #6 (permalink)  
Antiguo 21/01/2009, 13:26
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 2 meses
Puntos: 3
Respuesta: PHPPaging_lib.php y Mod Rewrite

Bien...

He construido el .htaccess:

Código:
RewriteEngine On
RewriteRule ^bibliografia/?(/pagina([0-9]+).html)?$ pagina/articulos/bibliografia.php?page=$2 [L]
Y el linkEstructura lo he puesto así:

Código:
$paging->linkEstructura('http://www.misitio.com/bibliografia/pagina{n}.html');
Ahora, voy a la página:
Código:
www.misitio.com/pagina/articulos/bibliografia.php
y todo bien, pulso en la paginación 2 y me muestra corectamente el contenido. En el navegador me muestra la ruta modificada, es decir:
Código:
www.misitio.com/bibliografia/pagina2.html
Pero resulta que cuando pulso sobre la página 1 me manda a ella con la ruta:
Código:
www.misitio.com/pagina/articulos/bibliografia.php?page=1
La verdad que estoy un tanto mareado... pido disculpas por mi torpeza y mi falta de conocimientos pero lo intento!!!
  #7 (permalink)  
Antiguo 21/01/2009, 15:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 2 meses
Puntos: 3
Respuesta: PHPPaging_lib.php y Mod Rewrite

Ahora sí, ya funciona... pasaba que estaba cometiendo un error, casualmente por eso del mareo!!!

Lo que no me muestra con el Mod Rewrite son las imágenes y algunas clases css.

Si no me equivoco, creo que hay que agregar algo de <base> en el <head> verdad ?

Saludos.-
  #8 (permalink)  
Antiguo 21/01/2009, 17:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: PHPPaging_lib.php y Mod Rewrite

Asegùrate de que tus reglas de reescritura no estén reescribiendo urls incorrectamente.

En todo caso, usa condiciones para verificar si el archivo o carpeta existen, y si no, recién ahí aplicas la regla. Puedes leer más de lo que te digo aquí: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

  #9 (permalink)  
Antiguo 21/01/2009, 19:05
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 2 meses
Puntos: 3
Respuesta: PHPPaging_lib.php y Mod Rewrite

Gracias okram...

Como curiosidad y para ir entendiendo mejor el Mod Rewrite con ejemplos.

Se puede poner el .htaccess en un Directorior inferior?

Es decir, en el ejemplo que estamos tratando, en vez de estar el .htaccess en el Directorio Raiz del Sitio, estuviera en:

Código:
www.misitio.com/pagina/articulos/bibliografia/.htaccess
y el archivo bibliografia.php donde se encuentra la paginación estuviera en:

Código:
www.misitio.com/pagina/articulos/bibliografia.php
cómo sería la ruta en el .htaccess... podría ser así:?

Código:
RewriteEngine On
RewriteRule ^bibliografia/?(/pagina([0-9]+).html)?$ ../bibliografia.php?page=$2 [L]
Como si saliéramos del Directorio "bibliografía" y fuéramos al encuentro del archivo bibliografia.php

Se puede establecer una ruta así?
  #10 (permalink)  
Antiguo 21/01/2009, 21:22
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: PHPPaging_lib.php y Mod Rewrite

Hasta donde sé, no. Pero no estoy seguro. Por qué no lo pruebas?

De todas maneras, creo que es mejor tener toda esa información en un sólo archivo y ubicado en la raiz del sitio.

  #11 (permalink)  
Antiguo 22/01/2009, 08:11
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 2 meses
Puntos: 3
Respuesta: PHPPaging_lib.php y Mod Rewrite

Bueno gente, de mi parte resta decir respecto al origen de éste post lo siguiente:

Enhorabuena a okram y felicitaciones por el script PHPPagin. El mismo es totalmente configurable y con una gran cantidad de funciones.

Además, tiene en la página Web del scrip (http://scripts.phperu.net/paging/inicio/) un detallado tutorial para su configuración y funcionamiento, el cual se agradece y es de suma importancia para todos aquellos que somos principiantes.

Seguramente con el tiempo, aparecerán nuevas versiones y con ellas mejoras, y correcciones que harán de éste script una herramienta importante.

Nuevamente, felicitaciones y gracias okram por compartir tus logros, por tu tiempo y tu paciencia!

Saludos.-
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 21:25.