Foros del Web » Programando para Internet » PHP »

URLs amigables + IE6

Estas en el tema de URLs amigables + IE6 en el foro de PHP en Foros del Web. Hola tengo un problema con el ejemplo modificado de la pagina http://www.baluart.net/articulo/urls-amigables-con-php Lo tengo y me funciona bien pero con Internet Explorer 6 se me ...
  #1 (permalink)  
Antiguo 20/02/2010, 00:56
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
URLs amigables + IE6

Hola tengo un problema con el ejemplo modificado de la pagina
http://www.baluart.net/articulo/urls-amigables-con-php

Lo tengo y me funciona bien pero con Internet Explorer 6 se me cuelga en cuanto le paso mas de un parámetro.
Ej
www.misitio.com/parametro1 //funciona OK
www.misitio.com/parametro1/parametro2 //se cuenga el IE6

Alguien sabe como solucionarlo?
Me es imprescindible el segundo parametro.
Por desgracia me insisten en que "por huevos" debe de ser compatible con IE6.
Le he dado mil vueltas y estoy seguro de que el cuelgue es por las URLs amigables y no por el HTML.
Saludos


.htaccess
Código:
DirectoryIndex /carpeta/errorpage.php
<ifmodule mod_rewrite.c>
RewriteEngine On

#Si la url solicitada no es un fichero(existente), continuar...
RewriteCond %{REQUEST_FILENAME} !-f

#Si la url solicitada no es una carpeta(existente), continuar...
RewriteCond %{REQUEST_FILENAME} !-d

#se toma todo ese -query_string- y se pasa como parametro route
RewriteRule ^(.*)$ controlador.php?route=$1 [L,QSA]
</ifmodule>

controlador.php
Código PHP:
function limpiar($valor)
{
    
//permitimos solo letras(a-Z), numeros y guiones
    
return preg_replace('/[^a-zA-Z0-9-_]/'''$valor);
}
function 
getVariables($url)
{
    
//quitamos la barra del final
    
$url preg_replace('/\/$/'''$url);
 
    
//separamos las partes de la url
    
$partes explode('/'$url);

    
$opcion limpiar(explode("/",urldecode($url)));

    return 
$opcion;
}
 
$opcion getVariables($_GET['route']);
/*
$opcion[0] de queda con el valor del primer parámetro
$opcion[1] de queda con el valor del segundo parámetro
Y bueno en función de los valores del vector $opcion voy generando las páginas

*/ 
  #2 (permalink)  
Antiguo 20/02/2010, 07:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: URLs amigables + IE6

las url amigables son una adaptación (reescritura del url) que hace el servidor (apache para ser exactos), como tal se hace en el server y no afecta para nada el navegador cliente
  #3 (permalink)  
Antiguo 20/02/2010, 08:19
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: URLs amigables + IE6

Hola gracias por responder.

Eso mismo pensaba yo y por eso tarde tanto en encontrar el fallo puesto que yo estaba revisando el HTML y CSS.

Pero resulta que si llamo al mismo fichero prueba.html desde la dirección www.misisio.com/parametro1 si que funciona, pero sin embargo si llamo a ese mismo fichero desde la dirección ww.misitio.com/parametro1/parametro2 se cuelga el IE6 (estamos hablando de un fichero de prueba html que para nada varia en función de la URL).

De todas formas después de mandar la consulta al foro me he dado cuenta de que si cambio el contenido de prueba.html a otro mas sencillo si que me acepta los dos parámetros.

Lo mas gracioso de todo es que el HTML resultante es perfectamente validable como HTML de transición.

En resumen los resultados son totalmente incoherentes y contradictorios por tanto solo me queda dar mi mas sincera enhorabuena al grandisimo Microsoft Internet Explorer 6 y si a alguien se le ocurre algo que me lo diga para ver como arreglo esto.

Gracias un saludo.
  #4 (permalink)  
Antiguo 20/02/2010, 08:43
 
Fecha de Ingreso: abril-2002
Mensajes: 186
Antigüedad: 22 años
Puntos: 2
Respuesta: URLs amigables + IE6

Por si sirve como dato el servidor de desarrollo se queda funcionando a tope hasta que cierro el IE6 con Ctrl+Alt+Sup.

Supongo que debe de haber algún bucle o algo parecido pero no entiendo donde ni como ya que después de hacer el include pongo el exit;

Ademas si hubiese un bucle infinito se supone que deberia de pasar con todos los navegadores.

Saludos.


Código PHP:

function limpiar($valor

    
//permitimos solo letras(a-Z), numeros y guiones 
    
return preg_replace('/[^a-zA-Z0-9-_]/'''$valor); 

function 
getVariables($url

    
//quitamos la barra del final 
    
$url preg_replace('/\/$/'''$url); 
  
    
//separamos las partes de la url 
    
$partes explode('/'$url); 

    
$opcion limpiar(explode("/",urldecode($url))); 

    return 
$opcion

  
$opcion getVariables($_GET['route']); 



if(
$opcion[0]=='parametro1')//si pongo www.misitio.com/parametro1 hace el include y OK
{
    include_once(
'prueba.php');
    exit;
}
if(
$opcion[0]=='parametro1' && $opcion[1]=='parametro2')// si pongo www.misitio.com/parametro1/parametro2 se crea el bucle y se cualga el IE6
{
    include_once(
'prueba.php');
    exit;


Etiquetas: amigables, url
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 14:49.