Foros del Web » Administración de Sistemas » Apache »

Url amigable en php sin alias

Estas en el tema de Url amigable en php sin alias en el foro de Apache en Foros del Web. Quiero hacer url amigable sin alias Por ejemplo tengo esto: www.elsitiodenegocios.com/anuncio/31 esto lo hago con: .htaccess Código: Options FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^anuncio/(.*) ...
  #1 (permalink)  
Antiguo 17/08/2010, 06:27
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 16 años, 11 meses
Puntos: 1
Url amigable en php sin alias

Quiero hacer url amigable sin alias
Por ejemplo tengo esto:
www.elsitiodenegocios.com/anuncio/31

esto lo hago con:
.htaccess
Código:
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^anuncio/(.*) c.php?c=$1 [NC,L]
Quiero quitar el alias "anuncio"

el archivo: c.php esta en raíz del sitio web y genera valores dinámicos por ejemplo 31

El parámetro c recibe los valores dinámicos por GET

Estoy intentando con esto:
.htaccess
Código:
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)$ /c.php?c=$1 [L]
Pero no funciona

Sale este error en página web
--------------------------------------
Error 500 - Internal server error
An internal server error has occured!
Please try again later.


Espero sus comentarios de cómo podría solucionar el problema para quitar el "alias"

Muchas gracias
  #2 (permalink)  
Antiguo 17/08/2010, 06:41
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Url amigable en php sin alias

usa mejor QSA, el problema de este modo sin "alias" es que TODAS las url empatan y se redirigirán a c.php, en decir que esto actúa como un controlador frontal, por eso se acostumbran usar los alias, para evitar ese inconveniente, suerte
Código Apache:
Ver original
  1. RewriteEngine on
  2. RewriteRule ^(.*)$ c.php?c=$1 [QSA]
  #3 (permalink)  
Antiguo 17/08/2010, 07:06
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Url amigable en php sin alias

Muchas gracias por responder,

Hice lo siguiente en:
.htaccess
Código:
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ c.php?c=$1 [QSA]
No funciona

La página de index salió un desastre todo desubicado

Saludos
  #4 (permalink)  
Antiguo 17/08/2010, 07:43
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Url amigable en php sin alias

precisamente, porque como actual como controlador frontal, siempre ejecutará c.php incluso para todos los archivos, es decir que tanto los js, css, e imágenes pasarán primero por c.php, por lo que tendrás que aplicar un filtro de archivos a la variable $_GET['c'] para dumpearlos a la salida:

inicio de c.php:
Código PHP:
Ver original
  1. if(file_exists($_GET['c'])){
  2.     $info=pathinfo($_GET['c']);
  3.     if($info['extension']=='php'){//verifico si es php, de lo contrario lee el código y lo dumpea!
  4.         include $_GET['c']; //con esto lo ejecuto
  5.     }else{
  6.         header("Content-type: text/".$info['extension']);
  7.         readfile($_GET['c']);
  8.     }
  9. }

no es una buena practica, además que debería hacerse un case especifico para cada tipo de archivo y devolver el content-type correspondiente

Última edición por maycolalvarez; 17/08/2010 a las 07:48
  #5 (permalink)  
Antiguo 17/08/2010, 09:24
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Url amigable en php sin alias

Muchas gracias de nuevo,

Se ve un poco complicado,

No habrá otra forma más sencilla

Me gustaría saber cómo hacer facebook

Por ejemplo:
http://www.facebook.com/anunciosgratisventa
  #6 (permalink)  
Antiguo 17/08/2010, 09:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Apache
  #7 (permalink)  
Antiguo 17/08/2010, 09:48
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Url amigable en php sin alias

pues en facebook se usa un controlar frontal similar, a igual que en diversos frameworks como symfony, claro, mucho más avanzados.

¿no te parecemás retable usar el alias como lo tienes ahora?, además el uso de alias facilita incluso el SEO
  #8 (permalink)  
Antiguo 17/08/2010, 10:33
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Url amigable en php sin alias

Muchas gracias de nuevo,

Ok, seguiré utilizando el alias

Hasta encontrar la forma de mejorar próximamente

A lo mejor encuentro como hacer los virtual host en mi servidor hosting

Saludos,
  #9 (permalink)  
Antiguo 29/06/2013, 21:09
Avatar de atiperukevin  
Fecha de Ingreso: junio-2013
Ubicación: Peru
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Url amigable en php sin alias

Hola Comunidad como están, entrando por primera vez a esta comunidad.
  #10 (permalink)  
Antiguo 29/06/2013, 21:30
Avatar de atiperukevin  
Fecha de Ingreso: junio-2013
Ubicación: Peru
Mensajes: 5
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Url amigable en php sin alias

Hola Comunidad como están, entrando por primera vez a esta magnífica comunidad, llevo semanas sin dar solución a un problema, es para la página de la empresa donde trabajo, estoy tratando de crear una URLs amigable para la web de la empresa donde trabajo, la verdad no la logro.
La página esta en php, cada página se llama con una función get asociado cada uno asociado con su título
Estas es una url no amigable http://localhost/pacific/?body=quienessomos
Quiero una urls amigable http://localhost/pacific/quienessomos

<title>Pacific:
<?php
switch($_GET['body'])
{
case quienessomos:
{
echo 'Quienes somos';
break;
}
case pensamiento:
{
echo 'Pensamiento ';
break;
}
case responsabilidad:
{
echo 'Responsabilidad ';
break;
}

}
?>
</title>

Función del menú con se llama cada uno…

<ul>
<li><a href="?body=quienessomos" class="MenuBarItemSubmenu">QUI&Eacute;NES SOMOS</a></li>
<li><a href="?body=pensamiento" class="MenuBarItemSubmenu">PENSAMIENTO </a></li>
<li><a href="?body=responsabilidad" class="MenuBarItemSubmenu">RESPONSABILIDAD </a></li>
<li><a href="?body=pactoglobal" class="MenuBarItemSubmenu">APOYAMOS </a></li>
<li><a href="?body=marca" class="MenuBarItemSubmenu">MARCA </a></li>
</ul>


El cuerpo donde se muestra es la siguiente.

<td align="center" class="texto">
<font face="Arial">
<?php
if($_GET["body"]==NULL)
{
include("home-js.php");
}
else
{
include("".$_GET["body"].".php");
}
?>
</font></td>

Por favor me pueden ayudar a crear el archivo .htaccess para una URLs amigable, les estaré agradecido a cada de Uds.
Gracias por anticipado a cada uno de ustedes

Etiquetas: alias, php, 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 14:32.