PHP - Uso de URLs

 
Vista:
sin imagen de perfil

Uso de URLs

Publicado por mendizalea (47 intervenciones) el 16/05/2013 19:14:02
Buenas tardes,

Como se podría ocultar en la URL por ejemplo pagina.php?id=1

En Joomla ya se que hay una opcion de URL amigables o asi...pero como se podria implementar algo parecido fuera de Joomla?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Uso de URLs amigables

Publicado por xve (6935 intervenciones) el 16/05/2013 22:09:09
Hola Mendizalea, eso se realiza mediante el mod_rewrite del Apache...

Por ejemplo para la url que pones de ejemplo:
http://www.dominio.com/pagina.php?id=1

podrías utilizar una url amigable algo así:
http://www.dominio.com/index1.html

y el mod_rewrite podría ser algo así:
1
2
RewriteEngine On
RewriteRule ^/index([0-9]+).html$ pagina.php?id=$1 [L,NC]


Espero que te sirva... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 17/05/2013 01:11:51
Muchas gracias xve!

Ya lo he podido configurar y ya lo tengo en marcha...lo unico tengo un problema con un formulario que tengo en una de las paginas, este es el codigo del formulario:

tiempos.php
1
2
3
4
5
6
7
8
<form id="vueltas" action="tiempos.php" method="get">
	<SELECT NAME="vuelta" SIZE=1 onChange="submit()">
		<OPTION>Seleccionar tramo</OPTION>
		<?php while ($resVU = mysql_fetch_array($queVU)) { ?>
		<OPTION <?php $VueltaFI = $resVU['IDVueltaT03']; if(strcmp($_POST['vuelta'], $VueltaFI)==0){ echo "selected "; } ?>VALUE="<?php echo $resVU['IDVueltaT03']; ?>"><?php echo $resVU['NombreT03']; ?></OPTION>
		<?php } ?>
	</SELECT>
</form>


.htaaccess
1
2
RewriteEngine on
RewriteRule ^vueltas/(\w+)/?$ tiempos.php?vueltas=$1 [L,NC]


vueltas.php
1
<a href="../vueltas/<?php echo $resVuelta['IDVueltaT03']; ?>">


En vueltas.php tengo un listado de todas las vueltas y selecciono uno de ellos y me abre tiempos.php con los datos de la vuelta seleccionada, y en este caso conel href que he puesto arriba me funciona correctamente la URL amigable.

Pero despues, dentro de tiempos.php en la combobox si selecciono otra vuelta distinta ya no va el tema, me dice NOT FOUND y me devuelve la siguiente direccion:

http://www.dominio.com/vueltas/tiempos.php?vuelta=32

Me falta algo por poner...pero no se el que

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Uso de URLs amigables

Publicado por xve (6935 intervenciones) el 17/05/2013 07:46:46
Hola Mendizalea, el archivo tiempos.php, en que carpeta se encuentra, en la raiz del dominio? o dentro de la carpeta /vueltas/?

Por el error que comentas, puede ser que este en la raiz, no? si es así, indícalo en el .htaccess así:
1
2
RewriteEngine on
RewriteRule ^vueltas/(\w+)/?$ /tiempos.php?vueltas=$1 [L,NC]

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 17/05/2013 12:02:30
El archivo tiempos.php esta en www.dominio.com/pruebas/


El .htaccess comienza asi:
1
2
3
4
RewriteEngine on
RewriteBase /pruebas/
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f


Digo yo, en el form el action tiempos.php no tendria que cambiar? Lo digo porque a la hora de activar las URL amigables he tenido que cambiar todos los href.

He probado como me has comentado y nada.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 17/05/2013 22:33:53
En action he puesto lo siguiente:
1
action="../tiempos.php"


Y con esto consigo que la primera seleccion de la combo vaya bien pero ya las siguiente no vas porque ya me cambia la URL amigable al normal, queda algo asi:

1
http://www.midominio.com/pruebas/tiempos.php?vueltas=23



Me parece que es algo que al enviar el formulario me lo cambia...y no se como hacerlo para que sea amigable en este caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Uso de URLs amigables

Publicado por xve (6935 intervenciones) el 18/05/2013 10:42:41
Hola, prueba a poner:
1
action="/pruebas/tiempos.php"

De esta manera, siempre ira a la misma ruta.

coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 18/05/2013 12:23:03
Ya lo he probado y ir va...lo que tengo luego es un problema porque todos los demas enlaces no van una vez utilizar la combo para seleccionar la vuelta, porque el combo me cambia de URL amigable a la URL de toda la vida. Porque el form...al realizar el GET me devuelve ?vueltas=23.

Lo que tengo que conseguir es que el GET devuelva en formato de URL amigable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Uso de URLs amigables

Publicado por xve (6935 intervenciones) el 19/05/2013 09:49:46
Hola Medizalea, creo que ahí vas equivocado... la url amigable la tienes que generar tu siempre desde código... si tienes el valor de la variable vueltas lo puedes volver a generar sin problema... la url amigable me refiero.

No se si me he explicado... coméntame, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 19/05/2013 14:47:26
Las URL amigables yo creo según entiendo en el .htaccess lo que hace es cuando mediante href le llamas a la URL amigable lo que hace es internamente llamar a la ruta normal.

Para entendernos mejor, en el html le llamo a la URL amigable para cambiar de pagina:
1
<a href="/pruebas/vueltas/<?php echo $resVuelta['IDVueltaT03']; ?>">


Y el mod-rewrite lo que hace es llamar internamente a la URL correcta:
1
2
RewriteEngine on
RewriteRule ^vueltas/(\w+)/?$ tiempos.php?vueltas=$1 [L,NC]


Lo que pasa en el caso del formulario que tengo es que al enviar el formulario llama a y no a la URL amigable como en el caso del HREF. Esto es donde me lleva el FORM:
1
/pruebas/tiempos.php?vueltas=(el valor seleccionado en el form)


Y entiendo que me deveria de devolver lo mismo que en el HREF: /pruebas/vueltas/(el valor seleccionado en el form)

Puede que este equivocado pero lo entiendo asi.

No se si sera posible que el form devuelve la URL amigable....aunque me parece que no sera posible. Podria hacer algo mediante Javascript?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Uso de URLs amigables

Publicado por xve (6935 intervenciones) el 19/05/2013 20:20:33
Pero si tienes el valor seleccionado en el form, tu mismo sabes como es la url amigable...

si me llega que $_GET["vueltas"] tiene el valor 3, se que la url amigable es:
vueltas/3/

el RewriteRule, es como una redirección...

Porque quieres la url amigable??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 19/05/2013 22:24:18
Puede que este equivocado pero intentare aclarar un poco la situacion:

.htaccess
1
RewriteRule ^tiempos/(\w+)/(\w+)/?$ tiempos.php?prueba=$1&vueltas=$2 [L,NC]


Luego en tiempos.php tengo la tabla con los tiempos de cada vuelta y tamben tengo el formulario con el que tengo problemas, en action tengo lo siguiente:
1
action="/pruebas/tiempos.php"


Al hacer el Submit del form en la URL me pone lo siguiente:
http://www.midominio.com/pruebas/tiempos.php?prueba=1&vueltas=2

Y yo creo que es porque el submit me devuelve los valores, en este caso ?prueba=1&vueltas=2 y ir va bien, pero me gustaria que saliese la URL amigable.
Todos los demas enlaces de URL amigable van perfectas, pero este es el unico que con un formulario...los demas son enlaces normales de href.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Uso de URLs amigables

Publicado por mendizalea (47 intervenciones) el 19/05/2013 23:45:49
De momento como no he encontrado una solución mejor lo he realizado mediante Javascript:

1
2
3
4
5
<form name="vuelt">
<SELECT NAME="vueltas" SIZE=1 onChange="cambiarVuelta(this.form)">
...............
...............
</form>


1
2
3
4
5
6
7
<SCRIPT Language="JavaScript">
   function cambiarVuelta(frm){
   var prueba = frm.prueba.value;
   var vuelta = frm.vuelta.value;
   window.location = '/prueba/tiempos/' + prueba + '/' + vuelta;
   }
</SCRIPT>


Con esta redireccion mediante javacript va tal cual lo queria.

Muchas gracias por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Uso de URLs amigables

Publicado por xve (6935 intervenciones) el 20/05/2013 07:35:45
Hola Mendizalea, no habías comentado que la url salia de un formulario...por eso no te entendía...

Gracias por comentarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar