Foros del Web » Programando para Internet » PHP »

refirecciones, $_GET y url amigables

Estas en el tema de refirecciones, $_GET y url amigables en el foro de PHP en Foros del Web. he visto varias soluciones por internet... pero... se puede hacer sólo con PHP, sin htaccess y sin modificar el config de apache?...
  #1 (permalink)  
Antiguo 30/06/2008, 02:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 271
Antigüedad: 19 años, 8 meses
Puntos: 1
refirecciones, $_GET y url amigables

he visto varias soluciones por internet... pero... se puede hacer sólo con PHP, sin htaccess y sin modificar el config de apache?

Última edición por MandrakeXP; 07/08/2008 a las 18:54 Razón: resuelto
  #2 (permalink)  
Antiguo 30/06/2008, 03:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: refirecciones, $_GET y url amigables

Lo mejor es usar .htaccess, ¿ Por qué no lo quieres usar ?
Se me ocurre una alternativa, pero es demencial, especialmente si tienes muchas URLs.
Sería crear esos directorios ficticios para cada URL posible, y en ellos necesitarías crear un fichero index.php. Para evitar tener que poner el fichero .php cada vez, puedes hacer que sea un link simbólico a un único fichero .php
__________________
Pop & Rock Bands
Pop Music Stars
  #3 (permalink)  
Antiguo 30/06/2008, 04:41
 
Fecha de Ingreso: marzo-2005
Mensajes: 271
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: refirecciones, $_GET y url amigables

al final he creado el .htaccess
con este code:

Código:
RewriteEngine on

Rewriterule ^detalle/(.+) detalle.php?id =$1
pero al probarlo

www.miweb.com/detalle/555 no encuentra la url

y al ir a www.midominio.com/detalle.php?id=555 no se cambia por la url bonita



sabeis el por qué??




lo he subido a servidor, al directorio superior y no funciona :(

al hacer phpinfo() si aparece loaded en apache el modulo de rewrite
  #4 (permalink)  
Antiguo 30/06/2008, 04:45
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: refirecciones, $_GET y url amigables

cuando realizo redirecciones suelo utilizar este pequeño asistente, es bastante comodo y siempre funciona.

http://www.mod-rewrite-wizard.com/

con el asistente anterior obtuve este codigo .htaccess

The original URL: http://www.midominio.com/detalle.php?id=555
The rewritten URL: http://www.midominio.com/555

Cita:
RewriteEngine On
RewriteRule ^([^/]*)$ /detalle.php?id=$1 [L]
  #5 (permalink)  
Antiguo 30/06/2008, 04:55
 
Fecha de Ingreso: marzo-2005
Mensajes: 271
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: refirecciones, $_GET y url amigables

no rula :(

en phpinfo() veo como cargado (loaded): mod_rewrite


en el .htaccess sólo he puesto eso:

RewriteEngine On
RewriteRule ^([^/]*)$ /detalle.php?id=$1 [L]


hace falta poner algo mas?

gracias
  #6 (permalink)  
Antiguo 30/06/2008, 05:32
 
Fecha de Ingreso: marzo-2005
Mensajes: 271
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: refirecciones, $_GET y url amigables

:( :(
  #7 (permalink)  
Antiguo 30/06/2008, 05:40
 
Fecha de Ingreso: marzo-2005
Mensajes: 271
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: refirecciones, $_GET y url amigables

acabo de hacer otra prueba para asegurarme que el htacc funciona con esto:

mi página prncipal es index.php


RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ index.php
ErrorDocument 404 index.php



en teoría, al acceder a index.html debería ver lo que hay en index.php

Si funcionase o no (y gracias al ErrorDocument) deberia verse obligatoriamente el index.php ¿no?

Qué sucede?
  #8 (permalink)  
Antiguo 30/06/2008, 07:41
 
Fecha de Ingreso: marzo-2005
Mensajes: 271
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: refirecciones, $_GET y url amigables

Hola, solcuionado, era problema del server.


la duda que tengo es cómo hacer para que cuando se intente acceder a:

http://www.midominio.com/dir1/dir2/d...documento.html

se muestre la web:

http://www.midominio.com/documento.html


ojo, los directorios dir1, dir2, dir3, dir4 son falsos, no existen


he probado con esto:

Código:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /detalle.php?id=$1 [L]
RewriteRule ^(.+)documento\.html$ documento.html [L]

pero no arranca :(
  #9 (permalink)  
Antiguo 30/06/2008, 09:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: refirecciones, $_GET y url amigables

Si el numero de directorios intermedios (dir1, dir2, dir3, ...) no está determinado, creo que lo mejor es cambiar el orden de las reglas. Ahora no funciona porque tu segunda regla es un subconjunto de la primera, es decir que la primera se cumple siempre, y al tener el modificador [L] pues ya no sigue mirando más reglas.

Es decir, prueba con:
Código:
RewriteEngine On
RewriteRule ^(.+)documento\.html$ documento.html [L]
RewriteRule ^([^/]*)\.html$ /detalle.php?id=$1 [L]
Pero OJO que con ésto la segunda regla funcionará para todos las URLS expecto para aquellas que terminen en "documento.html", pues habrán sido tratados por la regla primera. Estudia si es lo que quieres o no.
__________________
Pop & Rock Bands
Pop Music Stars
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 22:10.