Como convertir el título en url amigable?
hola estoy desarrollando una pagina web en php y necesito algun tipo de código que me convierta el titulo de los artículos en url amigables para el tema de seo posicionamiento etcétera
no estoy seguro si se hace con php o con un fichero htaccess la verdad es que estoy muy verde en estos temas , bueno gracias
no estoy seguro si se hace con php o con un fichero htaccess la verdad es que estoy muy verde en estos temas , bueno gracias
0
Puntos
Puntos
4763
Visitas
Visitas
3
Resp
Resp
Por phpros hace 122 meses
Principiante
Respuesta #1
puedes utilizar una función php para remplazar los espacios con guiones ademas de remplazar los caracteres extraños de lo contrario no podrías utilizar el título como una url
ejemplo
ejemplo
<?php //Función para remplazar cadena function seo_url($cadena){ $cadena= utf8_decode($cadena); $cadena = str_replace(' ', '-', $cadena); $cadena = str_replace('?', '', $cadena); $cadena = str_replace('+', '', $cadena); $cadena = str_replace(':', '', $cadena); $cadena = str_replace('??', '', $cadena); $cadena = str_replace('`', '', $cadena); $cadena = str_replace('!', '', $cadena); $cadena = str_replace('¿', '', $cadena); $originales = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ??'; $modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'; $cadena = strtr($cadena, utf8_decode($originales), $modificadas); return $cadena; } ?> <?php //Variable que contiene una cadena de texto $cadena='Como añadir una canción a un repositorio';?> <?php echo seo_url($cadena);?>
0
Puntos
Puntos
Por alber hace 122 meses
Administrador
Respuesta #2
Bueno hacer URL amigables es un proceso un poco complejo, ya que implican varias cosas:
Base de datos:
Puedes agregar un campo en la tabla de artículos que se llame seoUrl y que sea tipo text.
Agregar noticia:
Donde guardas la noticia debes de tener una función que de acuerdo al titulo te genere una cadena de texto que tenga el formato de URL amigable (con guiones medios en vez de espacios y sin acentos)
Personalmente uso esta función (puede parecer redundante pero es la que mejores resultados me da):
No solo basta hacer esto para que funcionen, debes de modificar el links de los artículos para que funcione, por ejemplo:
El código de este archivo debería ser similar a algo como esto:
Cualquier duda o inquietud no las haces saber
Saludos
Base de datos:
Puedes agregar un campo en la tabla de artículos que se llame seoUrl y que sea tipo text.
Agregar noticia:
Donde guardas la noticia debes de tener una función que de acuerdo al titulo te genere una cadena de texto que tenga el formato de URL amigable (con guiones medios en vez de espacios y sin acentos)
Personalmente uso esta función (puede parecer redundante pero es la que mejores resultados me da):
function sanear_string($toClean) { $chars = array( '?' => 'S', '?' => 's', 'Ð' => 'Dj','?' => 'Z', '?' => 'z', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss','à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y', 'ƒ' => 'f', ',' => '', '.' => '', ':' => '', ';' => '', '_' => '', '<' => '', '>' => '', '\\'=> '', 'ª' => '', 'º' => '', '!' => '', '|' => '', '"' => '', '@' => '', '·' => '', '#' => '', '$' => '', '~' => '', '%' => '', '€' => '', '&' => '', '¬' => '', '/' => '', '(' => '', ')' => '', '=' => '', '?' => '', '\''=> '', '¿' => '', '¡' => '', '`' => '', '+' => '', '´' => '', 'ç' => '', '^' => '', '*' => '', '¨' => '', 'Ç' => '', '[' => '', ']' => '', '{' => '', '}' => '', '? '=> '-', ); $toClean = str_replace('&', '-and-', $toClean); $toClean = str_replace('.', '', $toClean); $toClean = strtolower(strtr($toClean, $chars)); $toClean = str_replace(' ', '-', $toClean); $toClean = str_replace('--', '-', $toClean); $toClean = str_replace('--', '-', $toClean); $toClean = preg_replace('/[^\w\d_ -]/si', '', $toClean); return trim($toClean); }Links de las noticias:
No solo basta hacer esto para que funcionen, debes de modificar el links de los artículos para que funcione, por ejemplo:
<a href="articulo/<?php echo $articulo['seoUrl'] ?>"><?php echo $articulo['nombre'] ?></a>.htaccess:
El código de este archivo debería ser similar a algo como esto:
## Activar mod_rewrite de Apache para la reescritura de las URL RewriteEngine On ## URL amigable de los articulos RewriteRule ^articulo/(.+)$ ruta/archivo.php?seoUrl=$1 [QSA]De donde debes de tener en claro los formatos y las rutas de los archivos.
Cualquier duda o inquietud no las haces saber
Saludos
6
Puntos
Puntos
Por jonni09lo hace 122 meses
Experto
Respuesta #3
muy buena respuesta jonni09lo
0
Puntos
Puntos
Por alber hace 122 meses
Administrador