Foros del Web » Administración de Sistemas » Software para Servers »

Error en .htacces y RewriteRule

Estas en el tema de Error en .htacces y RewriteRule en el foro de Software para Servers en Foros del Web. Hola, acabo de empezar con lo de htacces para hacer mas amigables mis url. Emepecé con algo bien basico. Quiero que mi link index-pruebalink.php?id=3 se ...
  #1 (permalink)  
Antiguo 29/03/2009, 14:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Pregunta Error en .htacces y RewriteRule

Hola, acabo de empezar con lo de htacces para hacer mas amigables mis url. Emepecé con algo bien basico. Quiero que mi link
index-pruebalink.php?id=3 se vea como index-prueba/3 para ocultar que la pagina esta hecha en php.

en htacces puse:
Options FollowSymLinks
RewriteEngine On
RewriteRule ^index-pruebalink.php/3 index-pruebalink.php?id=3

en mi codigo de php, para ese link puse:
<a href="index-pruebalink.php/3"><?php echo $row_recordset['Nombre']; ?></a>

Problema I: Aqui accede a la página pero no recupera el contenido segun el id de articulo nº3 (el id pasado).

Problema II: Si reescribo la regla quitando el .php para que no se muestre que esta hecha con php, de esta manera:
RewriteRule ^index-pruebalink/3 index-pruebalink.php?id=3
Aquí no se accede a la pagina, me dice que no existe, toma mal el link.

Problema III: algo que saque de este foro Tema: URL con .htacces del 28/06/08
Pone algo asi como:
RewriteRule index/(.*)/(.*)/ index.php?modo=$1&id=$2
Lo que qui marco en rojo es la regla q debe corresponderse con ellink que se coloca en la pagina de php.
DUDA--> Pero que se pone..? porque probe adaptandolo a mi ejemplo y con poner "index/(.*)/" y como entiende que (.*) es el id nº 3
A ver si me explico:

RewriteRule index/(.*)/ index.php?modo=$1

y para su correspondencia en php:

<a href="index-pruebalink.php/(.3)"><?php echo $row_recordset['Nombre']; ?></a>
No entiendo, es reemplazar el asterisco por el id? , al ser paginas dinamicas, debo usar una variable.???
Agradecería un ejemplo, ya que he buscado bastante sobre el tema y hay mil ejemplos, pero nada sobre LA CORRESPONDENCIA DE LAS REGLAS CON LOS LINKS EN LOS SCRIPTS DE PHP.
Con un simple ejemplo basico o una url donde se aplique ello, estaria mas que bien, agradecia do y seguro que muchosssssss más.
Gracias.
  #2 (permalink)  
Antiguo 29/03/2009, 15:16
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Pregunta Respuesta: Error en .htacces y RewriteRule

Hola, respecto a lo que arriba escribi, puse:

RewriteRule ^index-pruebalink.php/([0-9]+)/?$ index-pruebalink.php?id=$1
y en el link de script en php:

<a href="index-pruebalink.php/<?php echo $row_rArts['idart'];?>"><?php echo $row_recordset['Nombre']; ?></a>

para que <?php echo $row_rArts['idart'];?> se corresponda con /([0-9]+)/?$ de la regla en htacces.

Bueno, en la url me sale:
http-barra-barra-3w-midominio-com/index-pruebalink.php/2
el 2 va variando por los idferentes id.

PROBLEMA: Veo la pagina, losencabezados pero no me recupera los contenidos de la Base de Datos segun el id pasado, en este casi id=2.
Ni idea donde esta el problema. Si pueden darme una mano..Gracias..!
  #3 (permalink)  
Antiguo 30/03/2009, 05:05
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 18 años, 10 meses
Puntos: 3
Respuesta: Error en .htacces y RewriteRule

Solo tienes ese regla, en .htacces, por que seria combeniente que al final pusieras [L], para que al cumpliser ese regla salte y no busque la siguiente.

me imagino que si utilizas la URL php (index.php?id=$x) ves el contenido que quieres cargar del la BBDD.
__________________
AlfaMeta formacion
  #4 (permalink)  
Antiguo 30/03/2009, 06:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Pregunta Respuesta: Error en .htacces y RewriteRule

Hola, gracias por tu respuesta !!
tengo una solo regla en mi htacces dado a que recien estoy probando con esta cuestion.
Efectivamente, con la url:
<a href="index-pruebalink.php/<?php echo $row_recordset['idArtciculo'];?>"><?php echo $row_recordset['Nombre']; ?></a>
Recupero y veo el nombre de un artículo desde mi base da datos.

Si utilizo:
RewriteRule ^index-pruebalink.php/([0-9]+)/?$ index-pruebalink.php?id=$1
y en php :
<a href="index-pruebalink.php/<?php echo $row_recordset['idArticulo'];?>"><?php echo $row_recordset['Nombre']; ?></a>

Resultado:
en mi pagina me sale:
URL: http-barra-barra-3w-midominio-com/index-pruebalink.php/2 o /3 o /3000 o el numero que identifica a un articulo, eso esta bien, PERO EN EL CUERPO DE LA PAGINA NO SE MUESTRA EL CONTENIDO DEL ARTICULO RECUPERADO DE LA BASE DE DATOS.

PROBLEMA: segun el id de articulo pasado, con esta regla, no se recuperan los datos de mi articulo. Ademas no puedo ocultar que la pagina esta hecha en php porque sino me da error.

Esto es lo que me sucede, he probado con varias reglas y con ninguna doy..
A ver si logro explicar lo que me sucede... gracias.
  #5 (permalink)  
Antiguo 30/03/2009, 08:21
 
Fecha de Ingreso: diciembre-2005
Ubicación: Vigo
Mensajes: 135
Antigüedad: 18 años, 10 meses
Puntos: 3
Respuesta: Error en .htacces y RewriteRule

hola, yo como ejemplo te pongo una pagina que he realizado en php http://www.adsldetelefonica.com/, puedes verla tiene urls amigables y por ningun lado aparece nada de php.

te dejo el codigo de mi .htacces
Código:
Options FollowSymLinks
RewriteEngine On
Rewriterule ^index/Tel_fija/mas_info/(.*)/(.*)/(.*)$  	index.php?sec=Tel_fija&ap=mas_info&id_producto=$3&id_categoria=$1&id_subcategoria=$2
Rewriterule ^index/Tel_fija/productos/(.*)/(.*)$  		index.php?sec=Tel_fija&ap=productos&id_categoria=$1&id_subcategoria=$2 [L]
Rewriterule	^index/Catalogo/movistar			   		index.php?sec=Catalogo&ap=movistar	[L]
Rewriterule ^index/Tel_fija/(.*)$                 		index.php?sec=Tel_fija&id_categoria=$1 [L]
Rewriterule ^index/la_empresa/trabaja                   index.php?sec=la_empresa [L]
Rewriterule ^index/la_empresa/envio_ok					index.php?sec=la_empresa&envio=ok [L]
haber si te sirve de ayuda.

por otro lado estaria bien ver tu web, para aclararme mejor.
__________________
AlfaMeta formacion
  #6 (permalink)  
Antiguo 30/03/2009, 13:16
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Busqueda Respuesta: Error en .htacces y RewriteRule

Gracias..! Lo voy a probar y luego te comento q tal me fue con esta regla.
Gracias por tu ayuda.
Aguarda por mi respuesta.. ja!
un saludo.
  #7 (permalink)  
Antiguo 05/04/2009, 13:39
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Desacuerdo Respuesta: Error en .htacces y RewriteRule

Bueno, hola, he probado adaptando tu ejemplo, pero no me funciona. No se donde este mi error. Me sale: "que la pagina no se encuentra".

La cuestion es asi:
tengo dos paginas, una index.php y otra indexprueba.php
En index.php tengo una tabla donde pongo un listado de arts. Cada articulo tiene un id q lo identifica. uso ese id para link y que linkee a la pagina indexprueba q se
muestra para cada articulo en detalle que se presenta en el index.

En index.php: el link es el siguiente:

<a href="indexpruebalink/<?php echo $recordset['idarticulo'];?>"><?php echo $recordset['titulo']; ?></a>

En indexpruebalink.php se recupera el id pasado con get:

if (isset($_GET['id'])) { $articulo=$_GET['id'] ...y se recupera el articulo con base de datos.... }

Mi .htacces tiene lo siguiente: (esta en el dir raiz donde tengo alojada la pag)
Options +Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^indexpruebalink/(.*) indexpruebalink.php?id=$1

Es algo super sencillo pero no me sale..!! Tampoco encuentro ejemplos donde se mencionen los script de php, esta bueno el ejmplo q me diste, pero no se ocmo adaptarlo desde php, ahi esta mi error, seguro.
A ver si lo pudes revisar..!
un saludo
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 10:17.