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

ayuda con RewriteRule de htacces

Estas en el tema de ayuda con RewriteRule de htacces en el foro de Apache en Foros del Web. hola tengo ya algo de tiempo programando con php, y ahora me encuentro tratando de hacer URLs amigables, y realmente tengo muy poca idea del ...
  #1 (permalink)  
Antiguo 17/06/2009, 19:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Información ayuda con RewriteRule de htacces

hola tengo ya algo de tiempo programando con php, y ahora me encuentro tratando de hacer URLs amigables, y realmente tengo muy poca idea del RewriteRule de htacces. Explico lo que he hecho hasta ahora...
1.- Tengo en mi servidor local el apache 2.2.8,
2.- Tengo activado el modulo Rewrite (no se si eso afecte realmente en algo)
3.- Cree un archivo en bloc de notas llamdo .htaccess con lo siguiente:

RewriteEngine on

RewriteRule ^prueba_7/(.+)\.php productos.php?ncat=$1
donde prueba _7, es el nombre de la carpeta donde estan los archivos en php, incluyendo el .htacccess ( para que solo me afecte esa carpeta segun tengo entendido ).

Me interesa afectar solo a página llamada productos.php, la cual recibe el parametro ncat=algún número.

No hace nada, ¿Realmente estoy en lo correcto?, ¿me falta hacer un paso?
No tengo idea igual que algunos compañeros ya que veo que no soy el unico con éste nuevo reto...!
Debo cambiar el (.+) por [0-9+].....¿?
o algun manual paso a paso de como hacer esto.
GRACIAS!
  #2 (permalink)  
Antiguo 18/06/2009, 10:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: ayuda con RewriteRule de htacces

¿Qué URL quieres redirigir hacia qué archivo? El archivo .htaccess normalmente se coloca en el directorio raíz.

En cuanto a un manual, puedes consultar el oficial:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/06/2009, 14:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: ayuda con RewriteRule de htacces

No me explique correctamente,
tengo el siguiente codigo:


RewriteEngine on
Options -Indexes +followSymlinks
RewriteBase /pruebas_2/prueba_7/
RewriteRule ^producto/(.*)\.html$ amigable.php?tipo=producto&categoria=$1 [NC,L]

donde /pruebas_2/prueba_7/ son parte de la ruta
la ruta completa de mi archivo seria: localhost /pruebas_2/prueba_7/amigable.php?tipo=producto&categoria=x
quiero tener una Ruta del tipo localhost /pruebas_2/prueba_7/producto/celular.html
y no se como hacer le, me aparece el error de que la pagina no es encontrada.

no se si voy por buen camino o entendi mal las cosas.
Lo que entiendo es que con tipo=producto, aseguro que se cumpla la condicion ^producto
y que el contenido de categoria, es lo que apareceria en lugar del (.*)

Tengo el archivo .htaccess en una carpeta superior a /pruebas_2/ y activada la opcion mod_rewrite.

¿Qué estoy haciendo mal, o que entendi mal?
quiero pasar de prueba_7/amigable.php?tipo=producto&categoria=$1 [NC,L]
a prueba_7/producto/celular.html
  #4 (permalink)  
Antiguo 19/06/2009, 14:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: ayuda con RewriteRule de htacces

A ver si entendí. Quieres que esto:
localhost/pruebas_2/prueba_7/producto/celular.html
Se redirija a:
localhost/pruebas_2/prueba_7/amigable.php?tipo=producto&categoria=celular
¿Es así?
En ese caso. La regla podría ser:
Código Apache:
Ver original
  1. RewriteRule ^([^/]+)/(.*)\.html$ amigable.php?tipo=$1&categoria=$2
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/06/2009, 22:02
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 17 años, 2 meses
Puntos: 2
Pregunta Respuesta: ayuda con RewriteRule de htacces

hola ahm bueno David, yo quiero algo parecido. mi codigo en el htaccess es este:
Código:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([^-]*)-([^-]*)-([^-]*)\.html$ page.php?var=7&mas=1&id=$3 [L]
Entonces lo que me genera estas reglas es una url asi
"software+antivirus/avg-2.html"

pero lo que yo quisiera es que en vez de el primer guion "-" me aparesca una slash "/" entonces yo deberia hacer esto, como tu dices,
"RewriteRule ^([^-]*)/([^-]*)-([^-]*)\.html$ page.php?var=$2 [L]"

Pero si yo ago eso seria algo asi:
"software+antivirus/avg-2.html"

El problema es que con ese slash "/" el servidor lo toma como un directorio, y no me muestra algunos flash y alguna simagenes no me lo muestra que puedo hacer para que no me pase eso.
  #6 (permalink)  
Antiguo 19/06/2009, 23:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: ayuda con RewriteRule de htacces

antes que nada Dj, realmente no estoy seguro, pero creo que colocando una diagonal invertida antes de la / que quieres te puede funcionar ^([^-]*)\/([^-]*)-([^-]*)\.html$ Realmente no lo se, pero veo que la usas antes del .html, tal ves funcione...

La otra es que sigo casi con el mismo problema, trato de rediereccionar me aparece que la página no Existe...!
¿Me faltara algo mas?

De hecho cambie a :

RewriteEngine On
RewriteRule ^nombre/(.*)\.html$ /aaa/index.php?tipo=nombre&nombre=$1 [NC,L]
algo un poco mas sencillo y sigue sin funcionar

pongo la direccion directamente y no funciona
localhost/aaa/nombre/vitro.html

y nada...


  #7 (permalink)  
Antiguo 20/06/2009, 10:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: ayuda con RewriteRule de htacces

Hola, DjMiki. Si abres un nuevo tema para tu pregunta probablemente podremos ayudarte mejor.

vitro012, ¿en qué directorio está tu .htaccess? Ya que dependiendo de eso puede que tengas que incluir también el "aaa" en la regla.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 23/06/2009, 19:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: ayuda con RewriteRule de htacces

Lo que me interesa es cambiar una pagina que se llama: productos.php?art=2
a un enlace amigable: iphone/3g. Tengo más páginas pero solo me interesa cambiar esa y otra, pero realmente es el mismo caso.

Tengo lo siguiente y creo que modifica todas las páginas.
RewriteEngine on
RewriteRule (.+)\.html$ aaa/index.php?nombre=$1 [L].

Esa regla me funciona a la perección, la otra es que no se como hacer los enlaces o hacer el traspaso de productos.php?art=2 a iphone/3g.

Si pongo el enlace directo iphone/3g, no hay problema, pero no se como hacer el cambio de una dirección a otra, y obtengo el parametro get ?art=2 de una base de datos.
  #9 (permalink)  
Antiguo 25/06/2009, 13:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: ayuda con RewriteRule de htacces

GRACIAS ya casi lo resolvi, pero voy a cerrar ésta pregunta por que tengo otra duda.

Lo resolvi con:


RewriteBase /nombre_carpeta/

RewriteRule (.+)\.html$ productos.php?id=$1 [L]

gracias!
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 20:36.