La reescritura de URLs se refiere al proceso de modificar una URL para hacerla más fácil y accesible a los usuarios de Internet. Normalmente, esta modificación se produce para que la URL sea más corta y coherente. De este modo, los usuarios lo recordarán y no tendrán problemas para leerlo o escribirlo si lo necesitan.
Hoy en día, los internautas saben que existen enormes riesgos en Internet. Y cuando nos encontramos con una URL de cola larga formada por números y letras, tendemos a sospechar de ella.
Por eso es importante asegurar la confianza de los visitantes cuando se encuentren por primera vez con su URL, haciéndola corta y significativa.
Si todavía no entiende el concepto de reescritura de URL, le invito a que lea detenidamente este artículo.
Capítulo 1: ¿Qué es la reescritura de URLs?
En este capítulo, intentaremos aclarar los temas esenciales para que tenga una idea clara de lo que significa la reescritura de URL.
1.1. Definición de reescritura de URL
Casi todos los servidores, ya sean Apache, Nginx, Microsoft IIS u otros, tienen la capacidad de modificar las URL antes de que sean visibles para los buscadores.
Esta modificación suele producirse cuando un documento solicitado se encuentra en otro lugar y el visitante debe ser redirigido a la nueva ubicación.
Además de estas reescrituras externas en las que un visitante solicita una URL y el servidor comprueba si hay ciertas redirecciones que se aplican a la URL solicitada, también hay reescrituras internas.
Los servidores pueden reconocer rápidamente el documento o recurso que debe estar disponible en una URL, independientemente de dónde esté almacenado en la estructura interna de carpetas.
Si tomamos el caso de WordPress, por ejemplo, cada entrada del blog se almacena en una base de datos y se le asigna un identificador. Las páginas individuales se pueden solicitar siempre a través de este identificador.
1.2) ¿Cómo funciona la reescritura de URLs?
La función de reescritura de URLs simplemente coloca una capa sobre la dirección original y la transforma en algo que sea fácil de encontrar y tenga sentido.
Desde la perspectiva del usuario, después de la reescritura, la URL del sitio web sigue siendo la misma en el navegador, pero más consistente
Pero entre bastidores, el navegador reescribe la URL en este complicado lío y envía una solicitud a los servidores.
Las reescrituras de URL también son extremadamente útiles cuando se cambia la estructura del servidor y se mueven los recursos de una carpeta a otra
En esta situación, un administrador del sistema se limitará a escribir la parte a la que apunta la URL amigable
Básicamente, como el recurso se ha movido, tendrá una ubicación diferente. Por lo tanto, se requiere una reescritura para apuntar la URL reescrita a la nueva ubicación del recurso
Esto no debe confundirse con las funciones de redirección que se producen cuando un recurso ha sido sustituido por otro diferente.
1.3. ¿Cuál es la importancia de reescribir una URL?
Es muy importante que las URL tengan sentido y den una idea de la página a la que se refieren, a la vez que sean fáciles de entender para los motores de búsqueda.
La reescritura de URL no muestra al usuario el funcionamiento interno y las estadísticas que hay detrás de la dirección de un sitio web, evitando que vea las cadenas de consulta, lo que no es beneficioso para el sitio.
Este proceso no sólo es útil para quienes lo ven o lo leen, sino que también contribuye al aspecto de la seguridad del sitio al impedir en gran medida la piratería o el acceso de usuarios malintencionados
Intenta crear una URL rica en palabras clave, lo que significa incluir la palabra clave en el texto de la URL, lo que ayudará eficazmente al proceso de SEO
Esto garantiza que el sitio en desarrollo ya está optimizado en cierta medida antes de su lanzamiento.
Las URLs creadas también tienden a ocultar los enlaces, que la mayoría de las veces parecen no tener fin.
Además, se puede seguir utilizando la misma URL, aunque haya un cambio en el enlace original.
El proceso de reescritura de URLs puede realizarse en cualquier tipo de sitio o sistema de gestión de contenidos web, tanto si se trata de un sitio desarrollado por asp.net como de los creados con tecnología PHP
El proceso de reescritura de URLs se realiza en función de los idiomas y las necesidades de los sitios web
Esto parece ser posible con la tecnología ASP.NET de manera eficiente, ya que es similar a Internet Information Server (IIS). De hecho, ASP.NET es un motor de scripting del lado del servidor (IIS) que produce páginas web interactivas.
La reescritura de URL también es posible con PHP con el módulo mod rewrite para el servidor Apache, entre otros.
Además, también parecen ser fáciles de usar a través de la interfaz. También es útil si un usuario quiere eliminar una sección de la URL para navegar al siguiente nivel, lo cual es muy beneficioso para ellos.
Supongamos que un usuario aterriza en la página example.com/seo/recritture-url y quiere volver a la página de inicio. Pueden simplemente mantener example.com y eliminar las otras partes.
1.4. ¿Por qué la reescritura de URLs es buena para el SEO?
El uso de la reescritura de URLs tiene varias ventajas. En primer lugar, la reescritura de URLs ayuda a la accesibilidad y a mejorar la experiencia del usuario
En pocas palabras, cuando un usuario mira una URL en los resultados de un motor de búsqueda, no tiene que intentar averiguar de qué trata esa página o artículo.
Además, las URL desordenadas no animan a la gente a hacer clic en ellas, lo que puede llevar a un menor índice de clics. Esto es generalmente malo para el SEO y el rendimiento del sitio.
Por otro lado, las URLs amigables ayudan a optimizar el contenido para el SEO
Una URL que incluya el título del artículo y la palabra clave principal le ayudará en la indexación de Google y en la percepción que los bots tienen de su artículo o página web
Como resultado, las URLs optimizadas para el SEO mediante la reescritura de URLs conducen a una mejor visibilidad, más credibilidad con sus usuarios y naturalmente un mayor volumen de tráfico.
Aparte de eso, el uso de la reescritura de URLs también ayuda a mantener la coherencia en su ruta de URLs y en la estructura del nombre de la página
Por último, las reescrituras también contribuyen al rendimiento mediante el almacenamiento en caché del modo de usuario y la resolución de problemas, ya que se encargan del seguimiento de las solicitudes fallidas.
1.5. Reescritura de URLs vs. redireccionamiento
A diferencia de las reescrituras de URL, una redirección es una acción del lado del cliente, no del lado del servidor.
Básicamente, se produce una reescritura cuando la dirección del recurso cambia, o necesitamos una capa más sencilla y fácil de usar
Esto ocurre entre bastidores y el usuario no es consciente de ello. En comparación, una redirección se produce cuando el recurso ya no existe.
Los redireccionamientos también pueden producirse cuando predecimos cómo intentará un usuario acceder a un recurso y configuramos las funciones de redireccionamiento para asegurarnos de que accede al recurso correctamente.
Por ejemplo, la resolución de WWW es una acción de redireccionamiento por la que, independientemente de cómo busque el usuario la página de inicio de Twaino, utilice o no WWW. antes del nombre de dominio, siempre aterrizará en Twaino.com.
Redirigir | Reescribiendo |
En el lado del cliente | En el lado del servidor |
La URL cambia en la barra de búsqueda. | Aquí la URL no cambia en la barra de búsqueda, sólo se modifica. |
La redirección admite los siguientes códigos:301: Permanente;302: Encontrado;303: Ver otro;307: Temporal. | El estado de redirección o no código no es aplicable. |
Es útil para la optimización de los motores de búsqueda, ya que obliga al motor de búsqueda a actualizar la URL. | También es útil para los motores de búsqueda al utilizar una URL amigable para ocultar una URL desordenada. |
Ejemplo: De http://votredomaine.com a http://www.votredomaine.com en el navegador | Ejemplo: https: //www.twaino.com/ a twaino.com |
Puede redirigir al mismo sitio o a un sitio no relacionado. | Normalmente reescribe en el mismo sitio utilizando una ruta relativa, aunque si tiene instalado el módulo ARR, puede reescribir en un sitio diferente. Cuando se reescribe a un sitio diferente, la reescritura de la URL funciona como un proxy inverso. |
El flujo de solicitud de la página es:El navegador solicita una página;El servidor responde con un código de estado de redirección;El navegador realiza una segunda solicitud a la nueva URL;El servidor responde a la nueva URL. | El flujo de solicitud de la página es:El navegador solicita una página;La URL se reescribe para hacer una solicitud de la página prácticamente actualizada en el IIS. |
Capítulo 2: ¿Por qué es importante reescribir la URL?
Este capítulo se centra en las razones por las que los webmasters deberían hacer una reescritura.
2.1. Las aplicaciones deben ser seguras
Es importante que los webmasters protejan sus sitios web de todo tipo de ataques. De hecho, un individuo no debería poder dañar su sitio web cambiando una URL que apunte a sus aplicaciones
Para garantizar la seguridad de su sitio, compruebe todas las variables GET de sus visitantes.
Por ejemplo, supongamos que tenemos un sencillo script que muestra todos los productos de una categoría. Suele ser así:
- myapp.php?target=showproducts&categoryid=123
Pero cuando un ScriptKiddie(tm) teclea en su barra de navegación myapp.php?target=showproducts&categoryid=youarebeinghacked, muchos sitios mostrarán mensajes de error quejándose de haber utilizado una consulta SQL incorrecta, un ID de recurso MySQL no válido, etc. Esto simplemente muestra que estos sitios no son tan buenos como podrían ser
Esto simplemente demuestra que estos sitios no son seguros en absoluto o son muy seguros.
2.2. Las aplicaciones deben ser fáciles de encontrar en los motores de búsqueda
No es de conocimiento general, pero muchos motores de búsqueda no indexarán su sitio a fondo si contiene enlaces a páginas dinámicas como la mencionada anteriormente
Simplemente toman la parte «nombre» de la URL. Es decir, todo lo que está antes del signo de interrogación, que contiene los parámetros necesarios para que la mayoría de los scripts funcionen, y luego intenta recuperar el contenido de la página
Para que quede claro, he aquí algunos enlaces de nuestra página ficticia:
- myapp.php?target=showproducts&categoryid=123 ;
- myapp.php?target=showproducts&categoryid=124 ;
- myapp.php?target=showproducts&categoryid=125.
Lamentablemente, es muy probable que algunos motores de búsqueda intenten descargar la página myapp.php.
En la mayoría de los casos, llamar a una secuencia de comandos como ésta provocará un error o no mostrará el contenido apropiado al que apuntaba el enlace
Pruebe esta búsqueda en google.com:
»tiene un error en su sintaxis sql» .php -forum
Se dará cuenta de que hay grandes errores y amenazas de seguridad en los scripts listados
2.3. Las aplicaciones deben ser fáciles de usar
Si su sitio web utiliza una aplicación como
quehttp://www.downloadsite.com?category=34769845698752354, entonces a la mayoría de sus visitantes les resultará difícil volver a su categoría favorita cada vez que abandonen la página principal de su sitio
Es incluso más fácil para el usuario encontrar la URL en la lista desplegable de los navegadores cuando escribe en el campo «Ubicación», aunque por supuesto esto sólo funciona si el usuario la ha visitado antes.
Capítulo 3: ¿Cuáles son las reglas para la reescritura de URLs?
Es obvio que la reescritura de URLs es una oportunidad para que los sitios hagan que sus URLs sean fáciles de usar. Sin embargo, esta práctica debe seguir ciertas reglas para ser eficaz y producir los efectos deseados.
En este capítulo, hablaremos de las reglas que deben seguirse para reescribir correctamente las URL de un sitio.
3.1) Cómo reescribir una URL con IIS
Para reescribir una URL con IIS, primero debe instalar el software que puede descargarse de la plataforma de Microsoft.
Una vez instalado, verá un nuevo icono de «Reescritura de Url» en la consola de gestión de IIS.
Paso 1: La consola de gestión de IIS con la reescritura de URLs añadida
Puede gestionar la reescritura de URLs a nivel de servidor o para sitios individuales, según le convenga
Con el módulo de reescritura de URL, verá las «plantillas» utilizadas. Las plantillas están en uno de los tres modos
- Coincidencia exacta
- Comodines; y
- Y las expresiones regulares de ECMAScript, que son expresiones regulares compatibles con Perl.
Hay dos tipos de reglas: de entrada y de salida
Las reglas de entrada examinan las URL de las solicitudes y las modifican. Mientras que las reglas de salida inspeccionan el tráfico enviado, buscan las URLs que contiene y las reescriben si es necesario;
Esto es aún más interesante cuando el contenido puede utilizar una URL absoluta que no es la que debe recibir el usuario;
Una de las ventajas de la reescritura de URLs es que admite una serie de reglas incorporadas que facilitan la vida cuando se quiere hacer una reescritura común
La lista completa de reglas incorporadas es :
- Regla con mapa de reescritura: permite definir un conjunto de rutas y sus sustituciones como una simple lista;
- Bloqueo de la consulta: Prohibir el acceso a un camino;
- URL fácil de usar: cree rápidamente reglas para asignar segmentos de ruta a cadenas de consulta;
- Proxy inverso: Permite que el servidor actual haga proxy inverso a otro;
- Hacer cumplir las URLs en minúsculas: Obliga al cliente a utilizar siempre las URLs en minúsculas a través de una redirección HTTP 301 «Permanente»;
- Nombre de dominio canónico: Utiliza una redirección HTTP 301 «permanente» para garantizar que los clientes utilicen siempre el nombre de dominio especificado;
- Añadir o eliminar el símbolo de la barra diagonal final: Esto siempre añadirá o eliminará la barra diagonal final en una ruta de URL que utilice una redirección de estado HTTP 301 ‘Permanente’.
Paso 2: La creación de una regla le permite elegir una regla incorporada para empezar
Las reglas incorporadas son estupendas porque, aunque vienen con un asistente personalizado, si es necesario, generan reglas estándar que luego puede ajustar o modificar según sea necesario.
La regla de la URL fácil de usar es bastante popular para aquellos que no tienen un sistema que lo haga automáticamente
Se empieza por introducir un ejemplo de la URL «fea» que el sitio necesita realmente
Paso 3: Crear una regla de URL amigable
Otra de las reglas incorporadas que la mayoría utiliza es la regla del proxy inverso
De nuevo, el sistema le guía a través de una competente configuración por defecto en lo que podría ser una tarea muy compleja
Contiene opciones incorporadas y editables como:
- Si las respuestas HTTPS deben ser siempre proxies a HTTP estándar o no;
- Si desea o no utilizar una regla de salida para ocultar el nombre del servidor interno
La gente suele utilizarlo para poder configurar un servidor central con hosts web virtuales en la misma dirección IP para gestionar las solicitudes entrantes que deben enviarse a diferentes servidores internos.
Figura D: Creación de un proxy inverso
La última regla que discutiremos es la de los mapas de reescritura
Estos le permiten crear una lista de URLs y traducirlas en URLs sustitutivas
Por sí solo, un mapa de reescritura es innecesario, debe utilizarse como parte de una regla más amplia en lugar de o junto con patrones de sustitución
Son especialmente útiles cuando se diseña o reorganiza un sitio que utiliza URLs no predecibles
Combinando una redirección mediante el estado HTTP 301 »Permanente» con un mapa de reescritura, puede personalizar sus traducciones en situaciones en las que las reglas no funcionan bien.
Una vez que haya establecido la regla básica, puede modificarla según sea necesario. El editor de reglas desglosa muy bien las cosas
Se comienza con un nombre de regla y la plantilla de URL que debe coincidir
A partir de ahí, puede añadir varias condiciones, como:
- Una búsqueda de una cadena concreta en un parámetro de la URL
- Una variable de entorno del servidor
- Y así sucesivamente
Puede indicarle que coincida con todas las condiciones o con alguna de ellas. Si no se cumplen las condiciones, la regla no realizará la reescritura
También puede realizar sustituciones en las variables del servidor, lo que es ideal para imponer ciertos comportamientos
Las variables del servidor abarcan una lista muy amplia de elementos con los que trabajar, incluidos los mapas de reescritura que ha creado
A continuación, se define lo que la regla debe hacer realmente, que es realizar una reescritura o redirección que enviará realmente un código de estado HTTP de redirección al cliente para que consulte la nueva URL
A continuación, defina la plantilla para la reescritura propiamente dicha. Por último, tiene algunas opciones:
- Añadir la cadena de solicitud;
- Guarde la solicitud;
- No ejecute más reglas después de que haya terminado.
3.2 ¿Cómo reescribir una URL con Apache?
A continuación le indicamos algunos pasos sobre cómo puede definir reglas de reescritura de URL con Apache:
Paso 1: Instalar el servidor web Apache
Antes de empezar, asegúrese de que tiene el paquete del servidor web Apache instalado en su sistema. Si no está instalado, puede instalarlo con el siguiente comando: »apt-get install apache2 -y»
Una vez instalado el paquete, inicie el servicio Apache con la siguiente orden: »systemctl start apache2».
A continuación, abra su navegador web y escriba la URL http://your-server-ip para comprobar el servidor web Apache
Paso 2: Habilitar mod_rewrite
Por defecto, el módulo mod_rewrite se instala con el paquete de Apache, pero está desactivado. Por lo tanto, tendrá que habilitarlo primero.
Puede habilitarlo con el siguiente comando: »a2enmod rewrite».
A continuación, reinicie el servicio Apache para aplicar los cambios y compruebe el módulo mod_rewrite de Apache con el siguiente comando: apache2ctl -M | grep rewrite_module.
Debería obtener la siguiente salida: rewrite_module (shared)
Paso 3: Habilitar los archivos .htaccess
Puede establecer reglas de reescritura directamente en el archivo de configuración principal de Apache. Sin embargo, se recomienda escribir reglas en el archivo .htaccess dentro de cada sitio web.
Por defecto, Apache no permite utilizar el archivo .htaccess. Tendrá que habilitar el archivo .htaccess en su archivo de configuración del host virtual por defecto.
Para ello, edite el archivo de configuración del host virtual por defecto de Apache: nano /etc/apache2/sites-available/000-default.conf.
Añada las siguientes líneas antes de la línea
Opciones Índice FollowSymLinks MultiViews
Permitir todo lo que se anule
Exigir que se conceda a todos
Asegúrese de guardar y cerrar el archivo, luego reinicie el servicio de Apache para aplicar los cambios: systemctl restarts apache2.
Paso 4: Configurar las reescrituras de URL
Para entender cómo funciona la reescritura de URLs, crearemos una página home.html en el directorio raíz del documento Apache
A continuación, configuraremos una reescritura de URL básica que accederá a la página http://your-server-ip/home y la convertirá en la ruta real de la página http://your-server-ip/home.html.
Empecemos por crear una página home.html:
nano /var/www/html/home.html
Añada el siguiente contenido:
Página de inicio
Aquí está mi página de inicio