Buenas tardes amigos/as, hoy voy a intentar crear una buena guía sobre cómo configurar htaccess para obtener URLs amigables en nuestro website para posicionarnos mejor en Google y otros buscadores.
Es cierto que guías y tutoriales para las URLs amigables hay muchos en Internet, pero voy a intentar que sea más sencilla de entender para vosotros.
Lo primero es entender que primero hay que tener un buen diseño web profesional, para que esto genera más interés y no abandonen nuestra página web antes de tiempo, ya que, si no, el resto de esfuerzos serían en vano.
Hoy 16-06-2023 ampliamos este artículo para añadir cómo hacer URLs amigables en WordPress.
Diferencias entre URLs amigables y no amigables
Lo primero es entender que son las URLs amigables. No son más que URLs con palabras que identifican lo mejor posible el contenido de la página o post al que están enlazadas, en vez de usar las típicas urls con parámetros GET.
O sea, tenemos esto
http://www.dominio.com/php/servicios.php?id=1
y lo queremos convertir en
http://www.dominio.com/servicio-de pinturas-domesticas/
por ejemplo…
A través el archivo htaccess podremos cambiar la forma en la que el navegador lee y muestra nuestras URLs, convirtiéndolas en URLs amigables que es como a google le gustan.
El funcionamiento de la página web va a ser exactamente el mismo, pero sin embargo para la gente que visita nuestra página web o blog va a ser mucho más fácil de recordar y a su vez google va a valorar más nuestro sitio Web.
A continuación, os dejo un ejemplo de URL normal y su correspondiente en URL amigable, aunque ya hemos puesto un ejemplo en los párrafos anteriores:
- https://www.tusitio.com/products.php?id=7&order=asc
- https://www.tusitio.com/productos-pinturas-exterior
Cómo configurar URLs amigables a través del archivo htaccess
Bien, ya sabemos la diferencia entre URLs amigables y URLs típicas, ahora voy a explicar cómo conseguir que nuestro sitio muestre éstas URLs, mediante la configuración de htaccess, bueno antes de explicar la configuración del htaccess os comento que podemos hacerlo de dos maneras.
- Eliminando la extensión de tu archivo
- Generando URLs amigables a partir de los parámetros.
Conseguir urls amigables eliminando la extensión
Bien, la primera es la más fácil de todas, es tan simple como que a la hora de hacer tu sitio Web, pongas a tus archivos directamente el nombre que a ti te gustaría que tuviera después tu URL amigable, por ejemplo:
- En vez de ponerle el nombre típico a tu página de contacto que normalmente en castellano sería contacto.php, elige un nombre amigable, por ejemplo contacto-taller-mecanico-madrid.php.
- O en vez de servicios.php, elige servicios-de-mantenimiento-mecanico-barcelona.php
También se puede hacer poniendo cada página dentro de una carpeta que tenga el nombre que necesitamos y dentro tan solo poner un archivo con el nombre index, por ejemplo, si hacemos lo siguiente:
https://www.dominio.com/servicio-lavanderia-madrid/ y dentro ponemos el archivo que muestra el contenido de la página llamándolo index.html por ejemplo, no aparecerá.
Pero has de tener en cuenta que esto solo te valdrá si estamos hablando de una página estática, o que siempre muestre lo mismo, porque si fuera dinámica, nuestro archivo servicios.php podría mostrar muchos más resultados como, por ejemplo:
- Cambio de aceite
- Revisión Pre-Itv
- Equilibrado de ruedas
- Tapizado de interiores
Por lo tanto, si nuestro archivo es dinámico adelanta un poco ésta guía y pasa a la parte dinámica.
Bueno continuo…, una vez hecho esto solo tendremos que crear y configurar el archivo htaccess y meterle las siguientes líneas de código que se encargarán de eliminar la extensión de tu archivo. Es imprescindible que tengáis activado el Módulo MOD REWRITE en vuestro server.
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www.
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1
[R=301,L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^(.*)$ $1.php [L,QSA]
Conseguir URLs amigables configurando htaccess
Bien amigos/as, ya tenemos la parte fácil, ahora vamos con la parte dinámica que es un poco más complicada para conseguir URLs amigables configurando htaccess.
Para hacerlo bien hecho tendremos que tener cuenta que a la hora de programar deberemos de ir poniendo en los enlaces la URL amigable sin la extensión.
Te daré un consejo…
cada vez que pongáis un enlace en vuestro código enseguida ir a vuestro htaccess y dejarlo ya configurado y definido.
Un ejemplo de cómo deberán de ser vuestros enlaces de la manera dinámica sería el siguiente:
- https://tudominio.com/categoria/esto-es-una-url-dinamica-de-la-categoria/idCategoria/numPag
Pero esto deberíamos generarlo de manera dinámica también, con lo cual una buena técnica es crear una función que coja los 60 primero caracteres del título o descripción, sustituya los espacios en blanco por “-” guiones y las letras con acento por letras sin acento, etc…
Os dejo una función que hará las URLs de tu sitio amigables.
//FUNCION SEO function makeSeo($text, $limit=75){ //Reemplazamos caracteres extraños por guiones - $text = preg_replace(‘~[^pLd]+~u’, ‘-’, $text); //Cambiamos espacios en blanco por guiones - $text = trim($text, ‘-’); //Lo pasamos todo a minúsculas $text = strtolower($text); //Eliminamos caracteres no buscados $text = preg_replace(‘~[^-w]+~’, ”, $text); //Si es mayor de 70 caracteres lo recorto if(strlen($text) > 70) { $text = substr($text, 0, 70); } //Si vacio devuelvo el Time if (empty($text)){ return time(); } return $text; }
Una vez tengamos implementada nuestra función lo que haremos es aplicarla dentro de nuestro código en el enlace que queramos, quedando algo así:
- ’.$variableTitulo.’
De manera que $variableTitulo contendrá el texto del título y con nuestra función haremos que quede un enlace amigable, después para que esto funcione, en nuestro .htaccess deberemos poner las siguientes líneas de código:
RewriteEngine on Options +FollowSymLinks RewriteBase /
Y la línea que tratará nuestras URLs amigables será la siguiente:
RewriteRule ^([a-zA-Z0-9-]*)$ tuArchivo.php [L]
E Voila¡¡¡, con esto ya tendríamos nuestro sitio configurado para URLs amigables, por supuesto habría muchísimos usos, por lo tanto, si tienes dudas de tu uso en concreto, pregunta e intentaré contestarte.
Urls amigables WordPress
Para conseguir disfrutar de URLs amigables en WordPress primero debes entrar en el Dashboard de tu WordPress, en el menú Ajustes -> Enlaces Permanentes.
Una vez dentro seleccionar Nombre de la entrada. Para nosotros esta es la mejor configuración.
Os dejamos unas fotos con los pasos.
Paso 1
Paso 2
NOTA: Si estas interesado en contratar los servicios de una agencia de diseño y desarrollo de software a medida, puedes visitar Desarrollo de Software a medida , una empresa joven, eficiente y económica, que es los que hace falta hoy en dia.