Programación y ejemplos de PHP, jQuery, HTML5, WordPress, MySQL y htaccess


Cómo crear urls amigables con htaccess y PHP

Interesantes entrada en la que vamos a ver cómo crear urls amigables con htaccess y PHP. De esta manera las urls de nuestra web se indexarán mejor y tendremos un mayor posicionamiento SEO.

Otra manera de aumentar el posicionamiento es disminuyendo el tiempo de carga de nuestra web, os recomiendo leer este post:

El funcionamiento de nuestro script para realizar urls amigables se va a comportar de la siguiente manera:

  1. Obtenemos el título o string que queremos convertir en URL amigable y la pasamos como parámetro de una función.
  2. Ejecutamos un script PHP en dicha función para obtener la URL amigable.
  3. Configuramos el archivo htaccess para la resolución de las URLs.

Ejemplo para crear una URL amigable de una manera simple

En este primer ejemplo vamos a crear un sencillo script en el que solamente vamos a sustituir los caracteres especiales y espacios en blanco de nuestra URL amigable:

Os explico el código superior:

  • Creamos una función en la que sustituimos los caracteres con acentos y caracteres especiales.
  • En dicha función hemos usado las funciones ereg_replace() y str_replace() para hacer las sustituciones.
  • La función devuelve el resultado.
  • Después a la variable $url le asignamos el resultado de la función habiéndole pasado esta cadena “El suelo está mojado en este precioso día de sol con pingüinos“, que en muchos casos será el título de la entrada, después concatenamos al resultado esta otra cadena en el que metemos el ID “-ID.html”.

Si veis el código comentado, os he añadido un tipo de url con el id de la entrada, esto hará más fácil resolver la consulta a la BBDD para mostrar el contenido.

Ya solo nos queda configurar el archivo htaccess:

Con estas líneas lo que detectamos es:

  • Cualquier cadena desde el directorio donde se encuentra el htaccess–> ^(.*) –> esta es la primera condición.
  • Que dicha cadena contenga entre un guión ‘-‘ y el ‘.html’ un valor numérico de 1 a 8 dígitos de longitud. –> -([0-9]{1,8}).html$
  • Cuando se cumplen estas condiciones mostramos el cotenido con nuestro PHP habiéndole pasado como parámetro el id que lo hemos obtenido en la segunda condición –> $2 que es ([0-9]{1,8}).

Ejemplo más completo para crear URLs amigables

Vamos a mejorar el ejemplo anterior dándole un toque más profesional, al final hemos creado una URL muy sencilla, limitándonos a sustituir caracteres.

En este ejemplo vamos condicionar las palabras de la URL, es decir, ninguna palabra menor de 4 caracteres aparecerá en la URL amigable y así evitar largas URLs:

En la función he metido 3 líneas adicionales para obtener la funcionalidad de limitar las palabras de la url a 4 caracteres como mínimo, os las explico:

  • En la línea 22 tenemos el script para limitar la longitud de las palabras de la URL, podéis modificarlo a vuestro antojo, lo ideal es que salgan las palabras que al menos tengan 3 caracteres. Los caracteres de esas palabras son sustituidos por espacios en blanco con la función PHP preg_replace().
  • En la línea 24 eliminamos los espacios generados por el anterior script con la función PHP preg_replace().
  • Y en la 26 eliminamos los espacios del principio y final con la función PHP trim().

El fichero htaccess es idéntico al anterior.

comments powered by Disqus

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR