El archivo htaccess The Ultimate Guide (actualización de 2021)

El archivo htaccess: la guía definitiva (actualización de 2021)

Al navegar por el administrador de archivos de su cPanel o cuenta de alojamiento, es posible que haya visto un archivo llamado .htaccess. Este archivo gobierna muchas opciones de configuración para el servidor web Apache. Apache es un software de servidor ampliamente utilizado para sistemas operativos multiplataforma.

Si bien la sintaxis que utiliza puede ser un poco confusa al principio, la .htaccess file puede hacer muchas cosas poderosas. Algunas de sus funciones incluyen redirección, protección con contraseña, restricción de acceso según ciertas condiciones y más. Esta publicación verá cómo configurar un .htaccess e implementar un par de sus usos más comunes.

 

Notas iniciales y configuración

Archivo htaccess

.htaccess se conoce comúnmente como "archivo de puntos", debido a que comienza con un punto o un punto. Los archivos Dot son casi siempre algún tipo de archivo de configuración. Los archivos Dot pueden ser para un sistema operativo o una pieza de software. De forma predeterminada, un sistema operativo oculta los archivos de puntos en las ventanas del buscador o en cualquier tipo de administrador de archivos del sistema. Por lo general, debe seleccionar la opción "Mostrar archivos ocultos" de las preferencias de su sistema operativo. O puede usar el ls -a comando para mostrar todos los archivos en la línea de comando.

Puedes tener varios .htaccess archivos en un servidor, y cada archivo siempre funciona de forma recursiva. Esto significa que cada archivo afectará al directorio en el que se encuentra, así como a todos los archivos y subdirectorios.

Si está utilizando FTP para transferir su .htaccess archivo a un servidor, debe transferir a través de ASCII modo. De forma predeterminada, la mayoría de los clientes FTP transferirán datos a través de BINARY modo, que es ineficaz para transferir archivos de puntos. Debería haber una opción para configurar el modo de transferencia en su cliente FTP.

Una vez que tenga el archivo en su servidor, pruebe para ver si está haciendo lo que se supone que debe hacer. Si por alguna razón parece que los cambios no han surtido efecto, puede deberse a permisos de archivo incorrectos. Permisos de archivo para .htaccess debe configurarse para 755. Debería haber una opción de "Permisos de archivo" en su cliente FTP. Alternativamente, puede ejecutar el comando chmod 755 .htaccess en la terminal

Páginas de error personalizadas

El uso de la .htaccess El archivo permite configurar páginas de error personalizadas. Esto permite mensajes más útiles, cuando un visitante se encuentra con un mensaje de error. (Haga clic para twittear este consejo) Los mensajes comunes "404 Archivo no encontrado", "401 Acceso no autorizado" o "500 Error interno del servidor" pueden ser bastante alarmantes. Tener una forma de que el usuario regrese a donde pretendía ir puede ser útil.

Puede crear sus propias páginas HTML personalizadas para cada uno de los tipos de error comunes. Además, debe colocar cada uno de ellos en un directorio llamado error_pages en su directorio raíz. Debe nombrar cada una de las páginas de error solo con su código de error (es decir, 401, 404, etc.), seguido del .html extensión.

Para implementar estas páginas de error en su sitio, agregue el siguiente código a su .htaccess archivo:

ErrorDocument 401 /error_pages/401.html
ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/500.html

 

Redirigir página

Redirigir páginaOtro uso común de .htaccess es para redireccionamientos de página. Puede dirigir desde cualquier ruta relativa dentro del director de su sitio. También puede redirigir a una ruta absoluta en su sitio o en otro lugar completamente en Internet. La sintaxis básica para usar en su .htaccess el archivo es:

Redirigir / directory_to_redirect_from / https://mysite.com/new_directory/index.html 

Siempre debe usar una ruta relativa como directorio de origen. Una ruta absoluta debe ser el directorio al que redireccionar.

 

Archivo htaccess: Agregar protección con contraseña

Puede agregar protección con contraseña a todo su sitio o solo a directorios específicos. Un sitio o vía protegida requerirá un nombre de usuario y contraseña para acceder. Una vez que llegue a una página protegida con contraseña, aparecerá una ventana emergente del navegador. Además, todas las contraseñas utilizadas en .htaccess cifrarse para mayor seguridad.

Para proteger con contraseña un directorio específico, navegue hasta ese directorio y cree uno nuevo. .htaccess archivo allí. Puede proteger con contraseña un sitio completo agregando el .htaccess archivo al directorio raíz. Manten eso en mente .htaccess protegerá recursivamente con contraseña todos los archivos y subdirectorios dentro del directorio principal.

La sintaxis básica para agregar protección con contraseña es la siguiente:

AuthName "Solo acceso autorizado"
AuthUserFile /htpassword-filepath/.htpasswd
AuthType Basic
Requieren usuario válido

 

AuthName "Authorized Access Only" indica el nombre del directorio protegido. "Sólo acceso autorizado" aparecerá en la ventana emergente al iniciar sesión.

AuthUserFile /htpassword-filepath/.htpasswd le dice a Apache dónde .htpasswd archivo es. Deberías reemplazar /htpassword-filepath/.htpasswd con la ruta del archivo real en su servidor para .htpasswd.

AuthType Basic significa que se empleará la autenticación HTTP básica. Este es el tipo más común de autenticación HTTP y más que adecuado para la mayoría de las aplicaciones.

La última línea require valid-user, indica que se necesita un nombre de usuario y una contraseña para acceder al directorio. Si desea solicitar un nombre de usuario específico, puede utilizar require user name. Reemplazar name con el nombre de usuario específico requerido. Esto se usa con mayor frecuencia para las secciones de administración de un sitio al que solo desea que tengan acceso usuarios específicos.

Aquí hay un video genial que muestra cómo crear y editar un archivo .htaccess por Zac Gordon.

 

.htpasswd

Usted puede colocar .htpasswd en cualquier directorio en la mayoría de los servidores, siempre que coloque la ruta absoluta para el archivo en .htaccess. El uso de una ruta relativa o una URL no localizará el archivo. En ciertas ocasiones .htpasswd deberá estar en el mismo directorio que .htaccess, sin embargo. Además, puede nombrar .htpasswd algo más. Aunque esta es una convención de nomenclatura que Apache entenderá automáticamente.

Para agregar una contraseña a .htpasswd, use la siguiente sintaxis:

nombre de usuario: contraseña cifrada
administración: fs424sJK / 67JGmn

Puede tener varios nombres de usuario y contraseñas guardados en un solo .htpasswd archivo, cada uno en su propia línea. Cada par de nombre de usuario y contraseña debe estar en la misma línea sin espacios, separados solo por dos puntos.

Servidores Linux requiere que utilice un servicio de cifrado de contraseñas para cifrar la contraseña. Hay muchas aplicaciones y sitios web que pueden hacer esto de forma gratuita. Una opción que vale la pena mencionar es DirectoryPass de ionix.

Tenga en cuenta que .htaccess no permite la funcionalidad de cierre de sesión. Una vez que se ingresan las credenciales de inicio de sesión correctas, se guardan en la caché del navegador web hasta que salga del navegador. Volver a abrir la página después de salir del navegador requerirá que ingrese las credenciales nuevamente.

Negar el acceso por dirección IP

Negar el acceso por dirección IPUna herramienta útil ofrecida por .htaccess es la capacidad de bloquear visitantes en función de su dirección IP. De esta manera, puede bloquear a ciertos visitantes por completo. Alternativamente, puede bloquear desde ciertas secciones del sitio, solo agregando un .htaccess archivo a un directorio específico.

Para bloquear visitantes en función de su dirección IP, utilice la siguiente sintaxis:

Orden allow, deny
negar de 345.4.5.0
negar de 754.53.8.
Dejar de todas las

El código del ejemplo indica a Apache que denegue el acceso desde las direcciones IP 345.4.5.0 y 754.53.8. En la tercera línea, la dirección IP 754.53.8 no incluye un cuarto grupo de dígitos, por lo que cualquier dirección IP que coincida con los tres primeros se bloqueará. Esto significa que 754.53.8.2, 754.53.8.4, etc., se les negaría el acceso al sitio.

Si solo desea permitir el acceso desde direcciones IP específicas, en lugar de bloquear, la sintaxis es muy similar. Puede utilizar el siguiente código:

Orden allow, deny
permitir a partir de 345.4.5.0
deny from all

En este código, la única dirección IP que puede acceder al sitio es 345.4.5.0 - Se rechazarán todas las demás IP.

En ambos casos (configuración de direcciones IP permitidas o bloqueadas), puede agregar tantos registros como desee, cada uno en su propia línea.

Cuando se bloquea una IP, a los visitantes se les mostrará un mensaje de error "403 Prohibido". Como vimos antes, puede personalizar las páginas de error para proporcionar al visitante más información legible por humanos.

Prevención de enlaces calientes

Cuando otro sitio obtiene activos de su sitio (como imágenes, videos, Archivos CSS, etc.), esto consume innecesariamente su ancho de banda. Esto puede generar mayores costos de alojamiento sin ninguna atribución o beneficio para usted.

Afortunadamente, .htaccess tiene una forma de evitar que esto suceda, impidiendo que otros dominios muestren su contenido:

RewriteEngine en
RewriteCond% {HTTP_REFERER}! ^ $
RewriteCond% {HTTP_REFERER}! ^ Http: // (www \.)? Mycoolsite.com /.*$ [NC]
RewriteRule \. (Png | jpg | mp4) $ - [F]

 

Encima,.htaccess no permite .png, .jpg or .mp4 archivos para vincularlos desde un dominio que no sea https://www.mycoolsite.com. Puede especificar otros formatos de archivo para no permitir (como .css, .mp3, etc.). Por supuesto, querrá cambiar el código con su propio nombre de dominio.

Para ir un paso más allá, en caso de que un sitio externo intente vincular a su contenido, puede proporcionar una imagen o mensaje alternativo para que se muestre en su lugar (como una imagen que diga "Lo siento, el contenido que está probando para acceder es desde mycoolsite.com ”):

Si un sitio externo intenta vincular su contenido, puede proporcionar una imagen o mensaje alternativo para que se muestre en su lugar. Un ejemplo es una imagen que dice "Lo siento, el contenido al que está intentando acceder es de mycoolsite.com".

RewriteEngine en
RewriteCond% {HTTP_REFERER}! ^ $
RewriteCond% {HTTP_REFERER}! ^ Https: // (www \.)? Mycoolsite.com /.*$ [NC]
RewriteRule \. (Png | jpg | mp4) $ https://www.mycoolsite.com/hotlink-error-message.jpg [R, L]

Esto mostrará hotlink-error-message.jpg cada vez que alguien intenta conectarse a .png, .jpgy .mp4 archivos de mycoolsite.com.

htaccess Redirigir a HTTPS

Cuando agrega un certificado SSL a su sitio, su servidor continuará brindando la versión HTTP de todas sus páginas web. Es por eso que necesita redirigir HTTP a HTTPS, forzando SSL en su sitio.

Tenga en cuenta que una función importante que puede realizar a través de .htaccess son las redirecciones 301, y esto puede redirigir permanentemente una URL antigua a una nueva. Es sencillo activar la función para forzar HTTPS en todo el tráfico que llega a su sitio siguiendo estos sencillos pasos:

  1. En su panel de alojamiento, vaya al Administrador de archivos y abra .htaccess en la carpeta public_html. Y si no puede localizarlo, debe crearlo o mostrarlo.
  2. Después de eso, desplácese hacia abajo para encontrar RewriteEngine On y luego inserte estas líneas de código justo debajo;
  3. htaccess Redirigir a HTTPSAhora guarda los cambios.

htaccess WordPress

Deberías saber que en WordPress, .htaccess es uno de los archivos de configuración especiales que puede controlar cómo su servidor web se ejecuta y administra su sitio. El archivo htaccess es uno de los archivos de configuración más poderosos y puede controlar las conexiones SSL, las redirecciones 301, la protección con contraseña, el idioma predeterminado y mucho más en su sitio web de WordPress.

Vale la pena señalar que el uso de archivos de configuración .htaccess se hizo más popular, ya que podrían usarse fácilmente para anular la configuración del servidor internacional relacionada con el acceso a directorios. En los últimos tiempos, sin embargo, .htaccess puede anular varios otros ajustes de configuración.

Ejemplos de archivos htaccess

le alegrará saber que una gran cantidad de posibilidades de configuración se pueden lograr fácilmente dentro del archivo .htaccess.

Bloquear direcciones IP

¿Está recibiendo tráfico de spam? Quizás, su sitio está sufriendo intentos de piratería o abuso de direcciones IP específicas. Si ese es el caso, puede tomar medidas con su archivo .htaccess. Puede bloquear fácilmente el tráfico de esa dirección IP utilizando un código en su archivo .htaccess.

Para bloquear un dominio en particular o específico, puede agregar lo siguiente al archivo .htaccess raíz de su sitio web:

Denegar desde 123.123.123.123/255.255.255.0

Después de eso, cambie la dirección IP y los valores de la máscara de red para que coincidan con el dominio que desea bloquear.

Evitar el enlace directo de imágenes

Debe saber que el enlace directo de imágenes ocurre cuando alguien inserta una imagen en su sitio en la suya. Y esto puede ser muy problemático (no solo desde la perspectiva de los derechos de autor), ya que significa que su servidor tiene que trabajar potencialmente horas extras para mostrar imágenes en el sitio web de otra persona.

Lo mejor es que puede detener esto fácilmente usando su archivo .htaccess y bloquear a una persona para que no incruste sus imágenes con derechos de autor en su sitio.

Al ingresar las siguientes líneas en un archivo .htaccess, puede evitar fácilmente los enlaces directos a su sitio:

Direcciones IP de htaccess-file-Block

También puede utilizar el siguiente código:

Direcciones IP de htaccess-file-Block

¿Dónde está el archivo htaccess?

¿Sabía que casi todos los sitios web, incluidos los sitios web de WordPress, tienen un archivo .htaccess que puede encontrar en el directorio central (o raíz)? Y este archivo htaccess está oculto y no tiene extensión.

Aunque el archivo generalmente está oculto, la ubicación del archivo .htaccess a menudo se encuentra en la carpeta public_html de su sitio.

¿Qué debería haber en un archivo .htaccess?

El archivo debe contener reglas que le den al servidor de su sitio varias instrucciones. Tenga en cuenta que casi todos los sitios web tienen un archivo .htaccess y se encuentra en el directorio central o "raíz".

Ventajas y desventajas

Le alegrará saber que los archivos .htaccess se leen oportunamente en cada solicitud. Como resultado, cualquier cambio que realice en estos archivos tendrá un efecto instantáneo.

Esto es diferente a la configuración global, que generalmente requiere que el servidor se reinicie. Además, tenga en cuenta que los archivos .htaccess permiten a cada usuario establecer rápidamente sus permisos para un servidor que tiene muchos usuarios.

Sin embargo, hay una gran trampa. Como todas las solicitudes requieren que el servidor lea todos los archivos .htaccess, tenga en cuenta que es probable que se produzcan problemas de rendimiento de moderados a graves si hay una carga considerable.

Y eso no es todo; descentralizar todas las configuraciones a varios usuarios puede llevar a múltiples problemas de seguridad, especialmente si estos archivos .htaccess no están configurados correctamente.

Cosas a tener en cuenta

Si bien un archivo .htaccess puede ser inmensamente útil y puede usarlo para realizar una mejora notable en su sitio web, hay dos cosas en las que puede influir.

velocidad

Los archivos .htaccess pueden ralentizar su servidor web. Tenga en cuenta que para la mayoría de los servidores, probablemente será un cambio menor o imperceptible. Esto se debe simplemente a la ubicación de la página.

Debe saber que el archivo .htaccess afecta a todas las páginas de su directorio, así como a todos los directorios que se encuentran debajo. Esto significa que cada vez que se carga una página, el servidor web escanea su directorio y todo lo que está arriba hasta que finalmente llega al archivo .htaccess o al directorio más alto.

Seguridad

¿Sabía que el archivo .htaccess es considerablemente más accesible en comparación con la configuración estándar de Apache? Además, los cambios se realizan instantáneamente. Tenga en cuenta que otorgar a los usuarios el permiso para realizar alteraciones y cambios en el archivo .htaccess les otorga demasiado control sobre el servidor web en sí.

Editar archivos htaccess

Editar archivos htaccess¿Sabías que editar el archivo .htaccess es arriesgado? Esto se debe a que podría eliminar un código que no debería. También puede agregar un código incorrecto o cometer algún otro error que rompa su sitio web. Con el fin de mitigar estos riesgos, es vital tomar al menos un paso de precaución antes de realizar modificaciones directas en su archivo htaccess.

Puede hacer una copia de seguridad de su sitio web para poder restaurar fácilmente una versión anterior de su sitio web si comete un error. Por otro lado, puede usar un sitio web de prueba para probar sus ediciones antes de publicarlas en su sitio web público.

Es mejor crear un archivo .htaccess de respaldo y luego descargarlo a una computadora. Esto asegura que si sus ediciones en su archivo .htaccess predeterminado causan algún problema o problema, puede confiar y cargar el archivo de respaldo.

 

Conclusión

No es ningún secreto que aprender a trabajar directamente con los archivos de su sitio es un paso vital en su camino para convertirse en un desarrollador web confiable. Y el archivo .htaccess es un excelente lugar para comenzar, ya que es un archivo simple que puede usar para una amplia variedad de aplicaciones.

Tenga en cuenta que cada vez que comprenda y aprenda más sobre lo que sucede entre bastidores con su sitio web, estará más cerca de convertirse en un webmaster eficaz y tendrá el potencial de optimizar y mejorar la funcionalidad de su sitio web.

 

Biografía del autor

Angelo ha estado involucrado en el mundo creativo de TI durante más de 20 años. Construyó su primer sitio web en 1998 utilizando Dreamweaver, Flash y Photoshop. Amplió sus conocimientos y experiencia al aprender una gama más amplia de habilidades de programación, como HTML / CSS, Flash ActionScript y XML.

Angelo completó una capacitación formal con el programa CIW (Certified Internet Webmasters) en Sydney, Australia, y aprendió los fundamentos básicos de las redes de computadoras y cómo se relaciona con la infraestructura de la red mundial.

Además de ejecutar Sunlight Media, Angelo disfruta escribiendo contenido informativo relacionado con el desarrollo web y de aplicaciones, el marketing digital y otros temas relacionados con la tecnología.

Publicar un comentario

Los comentarios están moderados. Su correo electrónico se mantiene privado. Los campos obligatorios están marcados *

© 2021 Sunlight Media LLC | 811 W 7th St. Nivel 12, Los Ángeles CA, 90017 | 323.868.3581