Cómo configurar Mod_Rewrite

La apache El servidor web es uno de los principales componentes básicos de Internet y ofrece sitios web y aplicaciones. Es un sistema complejo con muchas opciones, y una de las más importantes es el módulo de reescritura, o "mod_rewrite" para abreviar. En este artículo, veremos los usos de mod_rewrite y luego exploraremos cómo configurarlo en su propio sitio basado en Apache.

El propósito del módulo de reescritura de Apache

El propósito de este módulo es reescribir las URL de varias formas útiles. Esto significa que cuando los usuarios llegan a su sitio web a través de una URL (ya sea escribiéndola o seleccionando un enlace que la contenga), "terminarán" en otra URL. Hay varias razones por las que podría querer hacer esto.

Redirigir usuarios

Puede usar mod_rewrite para dirigir a los usuarios desde páginas más antiguas y desactualizadas que aún pueden aparecer en los resultados de búsqueda, a páginas más nuevas y actualizadas. Por ejemplo, suponga que tiene una página en https://www.mysite.com/review2015; Si alguien encuentra esto como un enlace y lo selecciona, puede usar una regla de reescritura para dirigirlo a http://www.mysite.com/review2019.

instagram viewer

URL más fáciles de recordar

Probablemente haya visto enlaces relacionados con el comercio electrónico con URL como https://www.thestore.net/3d78654954c29ace998658. Los desarrolladores usan etiquetas como esta para asegurarse de que los elementos tengan un identificador único, pero para los que no son expertos en tecnología es difícil de recordar.

Afortunadamente, una regla de reescritura puede ayudarlo a publicitar una buena URL, como https://www.thestore.net/notebooks/spiral/3-subject-spiral/, que, cuando se sigue, lleva al visitante al que tiene la URL fea.

Nombres de página únicos

En los primeros días de la Web, era común ver el nombre real de los archivos de página cuando visitaba un sitio web. Por ejemplo, la página "Acerca de nosotros" de un sitio web podría ser " http://www.someguys.org/about.html."

Pero hay un par de razones por las que ya no los ve mucho. La primera es que muchos sitios web se ejecutan mediante sistemas de gestión de contenido, que solo tienen un puñado de archivos de página reales. El resto del contenido se agrega dinámicamente a medida que se publica la página, por lo que puede parecer que todas las páginas tienen la misma URL, como " http://www.someguys.org/index.php." La reescritura de URL le permite tener la apariencia de estas páginas separadas, sin dejar de usar un CMS dinámico para administrar su sitio web.

URL más comprensibles

Los motores de búsqueda clasifican las páginas más arriba cuando tienen URL fácilmente comprensibles. Esto significa que es beneficioso para los sitios web tener una URL como " https://www.thecompany.com/services/consulting" en vez de " https://www.thecompany.com/index.php? section = services & page = consulting ", ya que la última parte se parece más a un código que a una URL.

La reescritura asegura que siempre esté poniendo su mejor cara, desde la perspectiva de la URL.

Cómo configurar mod_rewrite en su sitio

El uso de la reescritura de URL en Apache requiere dos componentes principales:

  • Habilitar el módulo de reescritura real dentro de Apache
  • Enumerar las reglas de reescritura necesarias en un archivo .htaccess.

Si bien los usos para la reescritura de URL se aplican igualmente a otros servidores web como IIS o nginx, mod_rewrite y los métodos a continuación solo se aplicarán a Apache.

Habilitar la función de reescritura en Apache

Primero, deberá activar la función de reescritura en su instalación de Apache.

  1. Deberá encontrar dónde se encuentra el archivo de configuración de Apache. Esto dependerá del instalador que utilizó.

    • En Windows, debe buscar un directorio llamado "/ conf" en el directorio de instalación de Apache.
    • En el popular instalador XAMPP de macOS, se encuentra en / Applications / XAMPP / xamppfiles / apache2 / conf.
    • En Linux, aparecería en el directorio / etc / apache2. En cualquier caso, está buscando un archivo llamado "httpd.conf", "http.conf" o "apache2.conf", por lo que también puede usar la función de búsqueda de su sistema operativo para buscarlos.
  2. Abra el archivo de configuración en un editor de texto, como Bloc de notas de Windows o TextEdit en macOS.

  3. Busque la línea "#LoadModule rewrite_module modules / mod_rewrite.so" y elimine el hashtag al principio. Esto denota un comentario, lo que significa que cuando está allí, el servidor Apache ignorará todo en esa línea. Elimine el hashtag y la próxima vez Apache ejecutará esa línea cuando se inicie.

  4. Guarde el archivo de configuración y reinicie el servidor Apache.

  5. Alternativamente, en algunas versiones de Linux verá algunos directorios como "/ etc / apache2 / mods-available" y "/ etc / apache2 / mods-enabled". Estos contienen fragmentos de archivos de configuración que se juntan dinamicamente. En este caso, puede ejecutar los siguientes comandos para habilitar primero el módulo de reescritura y luego reiniciar el servidor Apache:

    sudo a2enmod reescribir
    systemctl reiniciar apache2
  6. Ahora su servidor Apache está listo para reescribir las URL por usted. Solo que ahora necesita decirle cuáles reescribir y bajo qué circunstancias.

Definición de reglas de Mod_Rewrite en su sitio

Deberá definir las reglas para mod_rewrite utilizando el lenguaje de expresiones regulares. Afortunadamente, hay algo de ayuda disponible. Para una reescritura determinada que desee habilitar, puede usar una herramienta como el generador de reglas de VisioSpark.

  1. Ingrese la URL desde la que desea reescribir, es decir, la que ingresará un usuario, en el De: campo.

  2. Ingrese la URL en la que desea reescribir, es decir, aquella donde terminará el usuario, en el A: campo.

    Los generadores de reglas de reescritura de GUI pueden ahorrarle el esfuerzo de aprender la expresión regular
  3. Seleccione el control Captcha, luego seleccione Ir. El generador debería proporcionar un resultado que comience con "RewriteRule.

    Si encuentra otro generador, estos pasos pueden ser ligeramente diferentes, pero con suerte en el mismo estadio.

Introducción de reglas de Mod_Rewrite para su sitio

Así que esta es genial, una forma de apuntar y hacer clic para hacer estas reglas. ¿Pero dónde los pones?

Para usar reglas en un sitio web, deberá crear un archivo llamado ".htaccess" en la raíz del sitio web. De alguna manera depende de la plataforma dónde se almacenan los archivos de un sitio web en particular, pero deberá haberlo descubierto para implementar su sitio web allí en primer lugar.

Puede que ya exista un archivo con ese nombre. Si es así, ¡genial! Simplemente puede agregar sus líneas a ese archivo.

  1. Crea un nuevo archivo de texto con el nombre ".htaccess"en la raíz de su sitio web.

  2. En la primera línea, ingrese el siguiente código. Esto le dice al servidor que desea habilitar la reescritura para el sitio web actual.

    RewriteEngine encendido
  3. A continuación, agregue cada una de las líneas que creó con el generador. El inicio de nuestro archivo se vería así:

    RewriteEngine encendido
    RewriteRule ^ notebooks / spiral / 3-subject-spiral / $ / 3d78654954c29ace998658? &% {QUERY_STRING}
  4. Al igual que con cualquier cambio de configuración de Apache, es una buena idea reiniciar el servidor.

Usar Mod_Rewrite lleva tiempo, pero los resultados valen la pena

Definitivamente, usar la función mod_rewrite en Apache requiere algo de esfuerzo. Tiene que jugar con archivos de configuración basados ​​en texto, encontrar una manera de introducir expresiones regulares muy delicadas en esos archivos y saber cómo detener y reiniciar manualmente el servicio. Es probable que requiera mucho ensayo y error antes de obtener algo que no resulte en un error y se comporte correctamente.

Dicho esto, una vez que lo domines, obtendrás un gran beneficio de mod_rewrite. Sus visitantes podrán recordar mejor sus URL y su clasificación en Google probablemente mejorará. Las "URL bonitas" resultantes no son solo para mostrar, después de todo. También son funcionales.