Ver Mensaje Individual
  #15 (permalink)  
Antiguo 22/10/2013, 06:56
Melisa06
 
Fecha de Ingreso: febrero-2006
Mensajes: 35
Antigüedad: 19 años, 1 mes
Puntos: 1
Respuesta: No puedo generar url amigable

Cuando escribí que no pude lograrlo con el index.php fué haciendo las pruebas con el ejemplo inicial, la página salía en blanco con la url amigable correctamente en el navegador, antes me fijé cómo funcionan las instrucciones para tratar de entender el código.
Luego cuando pude conseguir que funcione sólo con el .htaccess agregué una variable más.

Te comento cómo va todo:

Si yo escribo en el navegador lo siguiente (es la url original) :

http://127.0.0.1/misitio/articulos/ver_articulo.php?ID_articulo=1234
(aparece la página ok).

----------------------------------------------------------
El .htaccess en el directorio raiz:

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
ErrorDocument 404 http://www.misitio.com/404.html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

----------------------------------------------------------
El archivo index.php en el directorio raiz:

<?php
$parts=explode("/",$_GET["page"]);
if($parts[1]=="articulos")
{
$parts2=explode("-",$parts[2]);
$_GET["id"]=intval($parts2[3]);
include("ver_articulo.php");
}
?>

----------------------------------------------------------

Dentro de la carpeta /articulos hay una página que incluye este enlace, que es el que pasa por .htaccess e index.php:

<a href='$url-".$row['ID_articulo'].".html' ><img border='0' src='ver.jpg'></a>

----------------------------------------------------------

Con var_dump($_GET); aparece :

array
'page' => string 'articulos/nombre-color-modelo-1234.html' (length=39)

----------------------------------------------------------

Si quito el var_dump($_GET); aparece la página en blanco con la url amigable correcta en el navegador :

http://127.0.0.1/misitio/articulos/nombre-color-modelo-1234.html

----------------------------------------------------------

Y como te comenté antes hice pruebas cambiando en index.php:
$_GET["id"] por
$_GET["ID_articulo"]
y sigue en blanco. (ID_articulo es el nombre real del campo).

otra prueba al final cambié:
include("ver_articulo.php"); por
include("articulos/ver_articulo.php");
y sigue en blanco.

$_GET["id"]=intval($parts2[3]); por
$_GET["id"]=intval($parts2[4]);
y sigue en blanco.

----------------------------------------------------------

Y así están las cosas, es todo lo que puedo decirte.

Saludos y no te esfuerces demasiado con esto, no pasa nada si no lo consigo, al menos tengo la otra alternativa.