Cómo utilizar el archivo .htaccess

Introducción

Un .htaccessarchivo se utiliza en un servidor web Apache como una forma de configurar los detalles de su sitio web sin alterar los archivos de configuración del servidor. Este archivo comienza con un punto para indicar que está oculto dentro de la carpeta. Un .htaccessarchivo se puede utilizar para cargar páginas de error personalizadas (como páginas 404), crear redirecciones de URL, implementar autenticación protegida con contraseña para directorios específicos en su servidor y más.

En este tutorial, aprenderá cómo habilitar, crear y usar un .htaccessarchivo, así como algunos usos comunes y el impacto en la velocidad y la seguridad.

Prerrequisitos

Si desea practicar el uso de un .htaccessarchivo siguiendo los ejemplos de este tutorial, necesitará:

  • Un servidor Ubuntu 20.04 configurado con un usuario que no sea root con sudoprivilegios y firewall habilitado. Puede hacerlo siguiendo la guía de configuración inicial del servidor Ubuntu 20.04 .

  • El servidor web Apache instalado en su servidor Ubuntu. Aprenda a configurarlo con nuestro tutorial sobre Cómo instalar el servidor web Apache en Ubuntu 20.04 . Asegúrese de completar el paso 5 y de tener un archivo de host virtual para su dominio. En este tutorial, se hará referencia a your_domain como ejemplo y se utilizará para el archivo de host virtual./etc/apache2/sites-available/your_domain.conf

  • Si desea practicar con un dominio (opcional), puede configurar uno comprando un nombre de dominio en Namecheap , obtener uno gratis en Freenom o usar el registrador de dominios que prefiera. También necesitará configurar los dos siguientes registros DNS para su servidor: dos registros A, uno con your_domainy otro con apuntando a la dirección IP pública de su servidor. Siga esta introducción a DigitalOcean DNS para obtener detalles sobre cómo agregarlos.www.your_domain

  • Si también desea proteger su host virtual, puede hacerlo con un certificado de confianza gratuito, como el que se muestra en nuestra guía Let’s Encrypt para Apache . Sin embargo, si no tiene un dominio, puede utilizar un certificado autofirmado. Esto proporciona el mismo tipo de cifrado, pero sin validación de dominio. Siga nuestra guía de SSL autofirmado para Apache para configurarlo.

Una vez que haya terminado de configurar, puede practicar la habilitación y creación de un .htaccessarchivo en los siguientes pasos.

Habilitar un .htaccessarchivo

Si tiene acceso a la configuración del servidor, puede editar la configuración de Apache para permitir que el .htaccessarchivo anule las configuraciones estándar del sitio web.

Comience abriendo el archivo de host virtual con su editor de texto preferido. Aquí, usaremos :apache2/sites-available/your_domain.confnano

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

Suponiendo que siguió el Paso 5 de la guía de instalación de Apache como requisito previo , este archivo contendrá lo siguiente:

/etc/apache2/sitios-disponibles/su_dominio.conf

    VirtualHost *:80    ServerAdmin webmaster@localhost    ServerName your_domain    ServerAlias www.your_domain    DocumentRoot /var/www/your_domain    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined/VirtualHost

Agregue el siguiente Directorybloque de contenido dentro del VirtualHostbloque:

/etc/apache2/sitios-disponibles/su_dominio.conf

VirtualHost *:80    ServerAdmin webmaster@localhost    ServerName your_domain    ServerAlias www.your_domain    DocumentRoot /var/www/your_domain    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combinedDirectory /var/www/your_domain                Options Indexes FollowSymLinks MultiViews                AllowOverride All                Order allow,deny                allow from all/Directory /VirtualHost

La línea más importante de este Directorybloque de contenido es la AllowOverride Allque permite el uso de .htaccessarchivos. Después de haber añadido esta información, guarde y cierre el archivo. Si está utilizando , nanopuede hacerlo pulsando CTRL + Xentonces Yy ENTER.

A continuación, reinicie Apache:

  1. sudo service apache2 restart

Ahora que su configuración se ha actualizado para permitir el uso de .htaccessarchivos, en el siguiente paso creará uno.

Creando el .htaccessarchivo

Para crear un .htaccessarchivo en su terminal, debe navegar hasta el directorio raíz de su sitio web. El directorio raíz de su sitio web es donde debe colocar el .htaccessarchivo para que sus configuraciones se puedan ejecutar correctamente en su sitio web. La .htaccessubicación correcta del archivo es importante, ya que las configuraciones en ese archivo afectan todo lo que se encuentra en su directorio y en los directorios posteriores. Esto significa que, si está sirviendo un par de sitios web diferentes en el mismo servidor Apache, su .htaccessarchivo debe ubicarse en el directorio raíz web específico de ese sitio web en particular.

Si siguió los requisitos previos, su directorio raíz web estará en la siguiente ubicación: Para crear un archivo para su sitio web, ejecute el siguiente comando: /var/www/your_domain/.htaccess.htaccess

  1. sudo nano /var/www/your_domain/.htaccess

Ahora que ha aprendido un par de formas de crear un .htaccessarchivo, a continuación revisaremos algunos usos comunes de una .htaccesspágina.

Usos comunes de una .htaccesspágina

Hay cinco usos comunes para una .htaccesspágina de su sitio:

Mod_Reescritura

Una de las facetas más útiles del .htaccessarchivo es mod_rewrite. Puedes usarlo .htaccesspara designar y modificar cómo se muestran las URL y las páginas web de tus sitios a los usuarios. Obtén más información sobre cómo puedes hacer esto con nuestro tutorial sobre Cómo configurarmod_rewrite .

Autenticación

Para configurar la autenticación de seguridad con .htaccess, puede crear un archivo de contraseñas llamado .htpasswdpara autenticar a los usuarios. Al realizar este cambio, se creará un portal de contraseñas que solicita a los visitantes del sitio que ingresen una contraseña si desean acceder a ciertas secciones de la página web. Al crear este archivo, asegúrese de almacenarlo en otro lugar que no sea el directorio web por razones de seguridad.

Para crear el archivo, ejecute el htpasswdcomando e incluya la -copción y el nombre de usuario para crear el htpasswdarchivo especificado. Una vez que esto sucede, un mensaje le solicitará que proporcione una contraseña. Puede insertar tantas líneas como necesite en el htpasswdarchivo, pero asegúrese de que cada usuario obtenga su propia línea respectiva. El siguiente ejemplo ilustra cómo crear una nueva entrada en el archivo, en este caso para el usuario sammy :

  1. sudo htpasswd -c /etc/apache2/.htpasswd sammy

Puede comprobar el contenido de este archivo ejecutando cat /etc/apache2/.htpasswd, y generará el nombre de usuario y la contraseña cifrada para cada registro que haya agregado.

Una vez que haya agregado los usuarios que desee, abra el .htaccessarchivo. Si siguió la guía de requisitos previos, este se encontrará en la siguiente ubicación:

  1. sudo nano /var/www/your_domain/.htaccess

Tenga en cuenta que en este ejemplo estamos restringiendo toda la raíz del documento en función de , pero esto se puede colocar en cualquier directorio al que desee restringir el acceso./var/www/your_domain

Una vez abierto este archivo, agregue el siguiente contenido y guarde los cambios para comenzar a utilizar la función de contraseña:

/var/www/tu_dominio/.htaccess

AuthType BasicAuthName "Restricted Content"AuthUserFile /etc/apache2/.htpasswdRequire valid-user

Para obtener más información, lea nuestro tutorial sobre Cómo configurar la autenticación de contraseña con Apache .

Páginas de error personalizadas

Además, un .htaccessarchivo te permite crear páginas de error personalizadas para tu sitio. Algunos de los errores más comunes son:

  • 400 Solicitud incorrecta
  • Se requiere autorización 401
  • 403 Página prohibida
  • 404 Archivo no encontrado
  • Error interno 500

Para que una página sea fácil de usar y brinde más información al visitante del sitio que la que ofrece la página de error del servidor predeterminada, puede usar el .htaccessarchivo para crear páginas de error personalizadas. Lea más en nuestro tutorial sobre Cómo configurar Apache para usar páginas de error personalizadas .

Tipos MIME

En los casos en que su sitio incluya algunos archivos de aplicación que su servidor no está configurado para entregar, puede agregar tipos de Extensiones de correo de Internet multipropósito (MIME) a ​​su servidor Apache en el .htaccessarchivo con el siguiente código:

/var/www/tu_dominio/.htaccess

AddType audio/mp4a-latm .m4a

Asegúrese de reemplazar la aplicación y la extensión del archivo con el tipo MIME que desea admitir. Para este ejemplo, especificamos un tipo MIME de archivo de audio.

SSI

Las inclusiones del lado del servidor (SSI) son una excelente manera de ahorrar tiempo en un sitio web. Uno de los usos más comunes de SSI es actualizar una gran cantidad de páginas con algunos datos específicos sin tener que actualizar cada página individualmente. Por ejemplo, si desea cambiar una cita en la parte inferior de una página.

Para habilitar SSI, inserte el siguiente código en su .htaccessarchivo:

/var/www/tu_dominio/.htaccess

AddType text/html .shtmlAddHandler server-parsed .shtml/pre

Estas líneas indican que .htaccesslos .shtmlarchivos son válidos, y la segunda línea hace que el servidor analice específicamente todos los archivos que terminan en .shtmlpara cualquier comando SSI.

Sin embargo, si tiene muchas .htmlpáginas que no desea renombrar con .shtmlextensiones, puede utilizar otra táctica para analizarlas en busca de comandos SSI: el XBitHack.

Puede utilizar esta XBitHacktáctica agregando la siguiente línea al .htaccessarchivo para hacer que Apache verifique todos los .htmlarchivos con los permisos adecuados para SSI:

/var/www/tu_dominio/.htaccess

XBitHack on

Para que una página sea elegible para el XBitHack, use el chmodcomando para cambiar los permisos:

  1. chmod +x pagename.html

Ahora que comprende algunos usos comunes de una .htaccesspágina, a continuación aprenderá más sobre el impacto .htaccessque tiene un archivo en la velocidad y la seguridad.

Velocidad y seguridad con .htaccessarchivos

Aunque un .htaccessarchivo se puede utilizar para mejorar un sitio, hay dos cosas que debemos tener en cuenta y que pueden afectar a su funcionamiento: la velocidad y la seguridad.

En cuanto a la velocidad, el .htaccessarchivo puede ralentizar el servidor, pero para la mayoría de los servidores, probablemente se trate de un cambio imperceptible. Esto podría deberse a la ubicación de la página, ya que el .htaccessarchivo afecta a las páginas de su directorio y a todos los directorios posteriores. Esto significa que cada vez que se carga una página, el servidor escanea su directorio y todos los directorios anteriores hasta llegar al directorio más alto o a un .htaccessarchivo. Este proceso se llevará a cabo siempre que la AllowOverridedirectiva permita el uso de .htaccessarchivos, como se demostró en el paso de habilitar un .htaccessarchivo.htaccess , independientemente de si los archivos existen o no .

Por razones de seguridad, el .htaccessarchivo es mucho más accesible que la configuración estándar de Apache y los cambios se realizan en vivo de manera instantánea (sin necesidad de reiniciar el servidor). Esto otorga a los usuarios permiso para realizar modificaciones en el .htaccessarchivo, lo que les otorga mucho control sobre el servidor en sí. Cualquier directiva colocada en el .htaccessarchivo tiene el mismo efecto que tendría en la propia configuración de Apache. También es importante tener en cuenta que Apache generalmente desaconseja el uso de .htaccesssi el usuario puede acceder a los archivos de configuración de Apache.

Conclusión

El .htaccessarchivo le brinda mucha flexibilidad para crear su sitio. Para obtener más información sobre cómo proteger su sitio, lea nuestro tutorial sobre cómo configurar la autenticación con contraseña con Apache . También puede leer más en nuestro tutorial sobre cómo instalar un servidor web Apache y, específicamente, sobre Archivos y directorios importantes de Apache .

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio