Foros del Web » Programando para Internet » PHP »

Ayuda con RewriteRule y el paso de variables

Estas en el tema de Ayuda con RewriteRule y el paso de variables en el foro de PHP en Foros del Web. Hola tengo un gran problema con RewriteRule, más que nada por mi falta de experiencia creo. Bueno os comento. Mi forma de programar las webs ...
  #1 (permalink)  
Antiguo 27/02/2004, 05:09
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 20 años, 11 meses
Puntos: 7
Exclamación Ayuda con RewriteRule y el paso de variables

Hola tengo un gran problema con RewriteRule, más que nada por mi falta de experiencia creo. Bueno os comento. Mi forma de programar las webs es realizar una pagina inicial (inicial.php) y en ella poner...

Código PHP:

switch ($seccion)
 {

case 
"articulos":
       include(
"articulos.php");
       break;

case 
"manuales":
       include(
"manuales.php");
       break;

case 
"otra":
       include(
"otra.php");
       break;


...para ir llamando a las diferentes secciones.

Y para entrar en cada sección seria:


inicial.php?seccion=articulos
inicial.php?seccion=articulos&nombre=PHP&ID=23

inicial.php?seccion=manuales
inicial.php?seccion=manuales&catego=php
inicial.php?seccion=manuales&catego=php&ID=34



Algo similiar a esto. Bueno la seccion de articulos si que he conseguido pasarla a .html quedandome un estandar asi:

articulos_php_23.html mediante

Código PHP:
RewriteRule ^(.+)_(.+)_(.+).html inicial.php?seccion=$1&nombre=$2&ID=$
Vale ahora agrego otra linea a el .httacces similar a esta:

Código PHP:
RewriteRule ^(.+)_(.+)_(.+).html inicial.php?seccion=$1&catego=$2&ID=$
(Variable nueva -> Catego, porque claro tengo muchas secciones donde las variables no son = y este es el problema fundamental creo)
Y no me la coge !! No me detecta nada y así me pasa con todas las secciones. Solo puedo generar el .html del articulo final y lo demás nada de nada ya que si pongo

Código PHP:
RewriteRule ^nombredemiweb.html inicial.php 
Tampo me deja y así. Bueno espero que entendais que es lo que trato de que me salga:

nombredemiweb.html (pagina de inicial.php)
articulos.html (seccion de inicial.php?seccion=articulos)
articulos_php_23.html
etc...

He buscado mucho por internet pero no he sido capaz de sacarlo vaya.

Última edición por Axo; 27/02/2004 a las 05:12
  #2 (permalink)  
Antiguo 27/02/2004, 05:26
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Tienes que encontrar cuales son las expresiones regulares que "casan" con tus URLs. Por ejemplo:

RewriteRule ^(.+)_(.+)_(.+).html inicial.php?seccion=$1&nombre=$2&ID=$3

te transforma toda URL que tenga dos _ y acabe en .html, como por ejemplo __.html. Pero no toma ppe.html.

Si tienes distintos parametros para las distintas secciones, tendrias que crear varias reglas con distinta expresion regular. Dos reglas no pueden tener la misma expresion regular, como tu has intentado.

No soy ningun experto en mod_rewrite, pero para tus casos podrias probar:

RewriteRule ^articulos_(.+)_(.+).html inicial.php?seccion=articulos&nombre=$1&ID=$2

RewriteRule ^articulos_(.+).html inicial.php?seccion=articulos&nombre=$1

RewriteRule ^articulos.html inicial.php?seccion=articulos

Lo mismo para las otras categorias, cambiando los nombres de los parametros.

Ya te digo que no soy un experto en mod_rewrite o en expresiones regulares.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 27/02/2004, 05:40
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 20 años, 11 meses
Puntos: 7
Pues no serás experto pero me has resuelto mi problema a la perfeccción . Muchas gracias !!
  #4 (permalink)  
Antiguo 27/02/2004, 05:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Pero seguro que hay alguna forma "mas mejor" de hacerlo
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 27/02/2004, 05:50
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 20 años, 11 meses
Puntos: 7
Si supongo que debe de haber otra forma en la que puedas pasar cualquier variable o similar pero bueno ya investigare en algun rato libre y si saco algo lo posteo
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 23:02.