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

Cambiar querystring por barras

Estas en el tema de Cambiar querystring por barras en el foro de Apache en Foros del Web. Hola, intento hacer que la url: http://example.com/miweb/pagina-1/?param=valor se muestre así en la barra de direcciones (y se pueda enlazar también de esta manera): http://example.com/miweb/pagina-1/param/valor No ...
  #1 (permalink)  
Antiguo 06/06/2012, 07:09
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Cambiar querystring por barras

Hola, intento hacer que la url:

http://example.com/miweb/pagina-1/?param=valor

se muestre así en la barra de direcciones (y se pueda enlazar también de esta manera):

http://example.com/miweb/pagina-1/param/valor

No lo consigo, este es mi .htacess:


Código:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /miweb/
RewriteRule ^/pagina-1/param/(.*)$ pagina-1/?param=$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /miweb/index.php [L]
</IfModule>
He probado a cambiar la posición de la regla y también a invertir el orden, pero no consigo que se muestre.

¿Me podéis ayudar?
Gracias
  #2 (permalink)  
Antiguo 06/06/2012, 13:44
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Cambiar querystring por barras

La regla es sencillamente asi

RewriteEngine On
RewriteRule ^param/(.*)$ /miweb/pagina-1/?param=$1 [L]

Pero como estás obviando el index.php deberías agregar un
DirectoryIndex index.php


Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. DirectoryIndex index.php
  3. RewriteEngine on
  4. RewriteRule ^param/(.*)$ /miweb/pagina-1/?param=$1 [L]
Aunque yo recomendaría
Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteRule ^param/(.*)$ /miweb/pagina-1/index.php?param=$1 [L]

Es decir, cualquier cosa que comience con

/param/x
va apasar x como valor x GET al index.php que está en larpeta
/miweb/pagina-1

aclaro qu las condiciones
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
van antes de la regla a la que querés afectar
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 07/06/2012, 04:57
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Respuesta: Cambiar querystring por barras

Hola, gracias por tu respuesta, pero no me sirve, porque por ejemplo, param puede ir en pagina-1 o pagina-2 así:

http://example.com/miweb/pagina-1/param=valor
http://example.com/miweb/pagina-2/param=valor

Según lo que tú me pones, siempre que aparezca param redirigirá a "pagina-1"
  #4 (permalink)  
Antiguo 07/06/2012, 07:31
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Cambiar querystring por barras

Yo puse sobre lo que vos posteaste, si la situación no es esa te sugiero que aprendas e exponer tu problema con precisión.
Buscá un buen manual sobre mod_rewrite
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 08/06/2012, 11:25
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Cambiar querystring por barras

Cita:
Iniciado por PosProdukcion Ver Mensaje
Hola, gracias por tu respuesta, pero no me sirve, porque por ejemplo, param puede ir en pagina-1 o pagina-2 así:

http://example.com/miweb/pagina-1/param=valor
http://example.com/miweb/pagina-2/param=valor

Según lo que tú me pones, siempre que aparezca param redirigirá a "pagina-1"
Lo que vos definís como "mal caracter" en tu valoración negativa, no es más que una consecuencia natural en mi, producto de tu infantil respuesta.

Si me hubieses contestado, por ejemplo
"gracias emprear, disculpa pero no me expresé bien en mi post ya que lo que olvidé mencionar es que página-1 tambíen es una variable, y podría ser, pagina-2, pagina-3, etc.... ¿Me podrías decir en ese caso como hacerlo?"
yo en este momento seguramente estaría aproximándote una posible solución.

En realidad me importa poco y nada que "no te sirva", mi única preocupación a la hora de responder, es que mi respuesta de una solución a la pregunta planteada, lo cual he hecho, y no responder sobre las cosas que el usuario "olvidó" decir, que vamos, tengo imaginación, pero no tanta

Así que no pretendas justificar en el tono de mis palabras tu incapacidad para expresarte correctamente, por si no lo has notado, este es un foro escrito, y requiere fundamentalmente, precisión. Más aún, tratándose de mod_rewrite, donde los patrones en reglas y condiciones tienen características cuasi matemáticas.

Confío, aunque tengo mis serias dudas, de que tu capacidad de comprender sea un poco mejor que la que tenés para transmitir tus ideas, si no, lo escrito previamente, fué una pérdida de tiempo

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 08/06/2012 a las 15:51

Etiquetas: rewrite
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 01:07.