PHP - crear url amigable y redireccionar

   
Vista:

crear url amigable y redireccionar

Publicado por efren efren315@gmail.com (22 intervenciones) el 22/07/2014 00:28:34
Hola amigos, primero que todo un cordial saludos espero les este yendo bien. ahora escribo por aqui porque me he quedado barado en un proyecto que estoy creando y necesito ayuda, y se que aqui me daran la respuesta a mi problema.

estoy creando un sitio de anuncios donde el usuario logicamente crea su anuncio y lo publica
lo que quiero hacer es con las url esto:
tengo una base de datos donde se guarda la informacion como titulos descripciones imagenes etc.

en el formulario de creacion el usuario tiene un campo que lo llamo enlace
y en la BD se guarda como enlace ese enlace es unico para cada anuncio el usuario lo coloca, no se repite nunca, ejemplo el usuario esta creando un anuncio con lo siguiente:

Titulo: Este es mi primer anuncio en mi portal efren315
enlace: efren315

esto se guarda en la base de datos: campo:titulo y campo: enlace

ahora lo que quiero hacer es que al momento de ingresar la url:

www.misitio.com/aqui va el enlace que coloca el usuario -..... es decir

www.misitio.com/efren315 que es el ejemplo que estoy dando

y que al momento de ingresar esa url www.misitio.com/efren315 este se redireccione a la siguiente url

www.misitio.com/mas el titulo del anuncio que en este ejemplo seria

www.misitio.com/Este_es _mi _primer _anuncio _en _mi _portal _efren315.html

y se carge el contenido del anuncio guardado en la base de datos.


aqui esta el problema que no encuentro como logra hacerlo si alguien con mas conocimiento que yo me puede dar un ejemplo o decirme como hacerlo se lo agradecería.

hasta el momento tengo esta funcion para las mayusculas y caracteres especiales
<?php
function urls_amigables($url) {
$url = strtolower($url);
$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
$repl = array('a', 'e', 'i', 'o', 'u', 'n');
$url = str_replace ($find, $repl, $url);
$find = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace ($find, '-', $url);
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
return $url;
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Salvador

crear url amigable y redireccionar

Publicado por Salvador (125 intervenciones) el 22/07/2014 01:51:58
Tal vez te sirva de algo el codigo que amablemente nos proporciono xve hace unos dias en el siguiente enlace:

http://www.lawebdelprogramador.com/foros/PHP/1452124-Como_crear_un_acortador_de_urls_en_php_sobre_apache.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

crear url amigable y redireccionar

Publicado por xve (5523 intervenciones) el 22/07/2014 10:47:01
Hola Efren, para ello, tienes que utilizar el modrewrite del apache, para que te redireccione... hay bastante contenido sobre ello en el foro de Apache...

Lo que tienes que tener en cuenta, es como vincular el texto de la url con el registro de la base de datos.

Por ejemplo, en estos foros, ponen algo como /foros/PHP/nnnn-texto.html donde nnnn entiendo que es el id del mensaje en la base de datos, por eso aunque cambie el texto, siempre funciona.

No se si me he explicado bien...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar