Foros del Web » Programando para Internet » PHP »

quitar el index.php de la url amigable

Estas en el tema de quitar el index.php de la url amigable en el foro de PHP en Foros del Web. Hola estoy usando el codigo de : http://www.maestrosdelweb.com/editorial/urlamigable/ Para la url amigables si bien funciona estoy buscando como quitar el index.php de forma completa, pero ...
  #1 (permalink)  
Antiguo 06/02/2010, 09:18
Avatar de javiertkd  
Fecha de Ingreso: agosto-2008
Ubicación: Mendoza
Mensajes: 129
Antigüedad: 11 años, 3 meses
Puntos: 1
quitar el index.php de la url amigable

Hola estoy usando el codigo de : http://www.maestrosdelweb.com/editorial/urlamigable/

Para la url amigables si bien funciona estoy buscando como quitar el index.php de forma completa, pero no lo logro me tira error :(

EJ: www.pagina.com/index.php?producto=3
www.pagina.com/producto-3.html

Codigo:


Options +FollowSymLinks
RewriteEngine on
#1 variable
Rewriterule ^(.*)/(.*),(.*)/$ $1.php?$2=$3



//---------------------------//
<?php

//Iniciamos o continuamos la sesión encargada de evitar el bucle infinito

session_name("url_amigable");
session_start(); //Almacenamos datos del server, script y variables (pasadas por GET)
$Server=$_SERVER[´SERVER_NAME´];
$Script=$_SERVER[´PHP_SELF´];
$Variables=$_SERVER[´QUERY_STRING´]; //Verificando si tiene variables por GET

//y no se han pasado datos mediante un form por POST, ya que al redireccionar un post puede ocasionar errores.
//también verificamos que la variable de sesión ‘Listo’, sea diferente a 1, esto nos eviara un bucle infinito.

if(!empty($Variables) & $_SERVER[’REQUEST_METHOD’]==’GET’ && $_SESSION[’Listo’]!=1){

//Si tiene variables pasadas por GET se procede a hacer el cambio.
//1. Agrupando $Variables por “variable=valor” en el array $Variable.

$Variable=explode(”&”,$Variables);
//2. Sustituyendo “=” por “,” y concadenandolo en variable $Amigable.
($i=0; $i < count($Variable); $i++){
$Amigable.="/".str_replace("=",",",$Variable[$i]);
} //3. Quitando la extension “.php” a $Script para simular un directorio.

$Dir=str_replace(”.php”,”",$Script); //4. Generando la URL Amigable.
$URL_AMIGABLE=”http://”.$Server.$Dir.$Amigable.”/”;
//5. Colocando la variable de sesión ‘Listo’ a 1 para evitar el bucle infinito al redireccionar la web.

$_SESSION[’Listo’]=1;
//6. Redireccionando a la url amigable

header(”Location: $URL_AMIGABLE”);
//7. Exit hará que culmine hasta este punto el script, si no estuviera ‘exit’el script continuaría ejecutándose y llegaría hasta el final del mismo, es decir,
// a la parte donde colocamos a la variable de sesión ‘Listo’ en cero, originándose, entonces un bucle infinito.
exit;

}//Cambie $_URL_BASE por la ruta raiz de su web, ya que al simular la url amigable.
//directorios, hará que no muestre adecuadamente los orígenes de los recursos que llama su página web.

$_URL_BASE="http://”.$Server.”/pruebas/url_amigable/index.php";
?>
<html>
<head>
<title >URL Amigables</title>
<base href = "<? echo $_URL_BASE; ?>" target="_top" />
</head>
<body>
<!-- Aquí el contenido de su página web -->
</body>
</html>
<?php
//Limpia el posible bucle, es decir, se puede volver a hacer el envío.
$_SESSION[’Listo’]=0;
?>
  #2 (permalink)  
Antiguo 06/02/2010, 10:13
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 10 años
Puntos: 1
Respuesta: quitar el index.php de la url amigable

El que suelo utilizar en mis ejemplos http://programadorphp.org es
--------
AddDefaultCharset UTF-8
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^administrator\/(.*) - [PT]
RewriteRule ^([a-zA-Z0-9\/\-\_-]*)[\/]*$ index.php/$1/
--------

donde administrator es el nombre del directorio donde no queremos que se aplique la regla...

Etiquetas: quitar, url, amigables
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 03:36.