Los fundamentos de .htaccess

Artículo escrito por:
  • Guías de alojamiento
  • Actualizado: Jun 29, 2013

Comprender el archivo .htaccess de un servidor es un componente clave del diseño y desarrollo web

La mayoría de los clientes de alojamiento web aficionados y los nuevos desarrolladores web asumen que la parte más importante de cualquier configuración de servidor es el software instalado. Instalan febrilmente su aplicación basada en ASP o PHP, con la esperanza de crear contenido avanzado que esté controlado por un software popular y extensas bases de datos de celdas y tablas. Pero en medio de este frenesí de actividad, casi todos los desarrolladores inicialmente ignoran uno de los archivos más importantes y poderosos del servidor. Ese archivo se conoce como el archivo ".htaccess" y controla todo desde mensajes de error a páginas protegidas por contraseña, y estructura de enlace permanente a usuarios bloqueados que no pueden ver el contenido del sitio.

El archivo ".htaccess" reside en el directorio público raíz del servidor de forma predeterminada. En los servidores Linux, ese directorio casi siempre se llama "public_html". Para las subcarpetas que necesitan beneficiarse de la potencia de este archivo, se puede colocar un archivo ".htaccess" secundario dentro de cada subcarpeta y otro directorio en el propio servidor. Cada archivo o carpeta dentro de un directorio con un archivo ".htaccess" hereda los permisos y las pautas de ese archivo, a menos que lo anule una versión codificada por separado del archivo. Si suena complejo, eso se debe a una técnica moderadamente avanzada para controlar el comportamiento del servidor. Sin embargo, no es imposible aprender. Y una vez que los clientes de un desarrollador o de un alojamiento web principiante aprendan cómo controlar su servidor utilizando este archivo, les resultará imposible volver a los días en que un archivo ".htaccess" era una molestia que apenas se entendía, y mucho menos se empleó.

Directorios de protección de contraseña es un complemento con el archivo .htaccess

La seguridad del servidor de alojamiento web es algo que casi todos los clientes analizan antes de comprometerse con cualquier empresa de hosting o tecnología de servidor específica. En su mayor parte, los servidores de Windows y Linux son igual de seguros, al mantener la información lejos de aquellos que no deberían tenerla. Pero eso solo es cierto en cuanto a la defensa contra hackers y scripts web maliciosos. Cuando se trata de proteger con contraseña archivos o directorios específicos, todo el trabajo debe ser realizado por el archivo .htaccess separado de las tecnologías del servidor o las características de seguridad.

El archivo .htaccess tiene su propio estilo único de protección de estos directorios, tal como lo presenta su lenguaje y técnicas de programación simple, línea por línea. En este caso, un usuario simplemente define el directorio a proteger y luego establece los parámetros necesarios para acceder a ese directorio en el propio archivo. Esa contraseña se puede aplicar a un solo archivo, a un directorio completo o al servidor completo cuando se accede a través de un navegador web típico. La configuración simple y de una sola línea de una contraseña de archivo o directorio se parece al ejemplo a continuación cuando se completó e inició completamente.

AuthUserFile /public_html/secure/files/.htpasswd
AuthGroupFile / dev / null
AuthName EnterPassword
AuthType Basic
requiere usuario secureUser

Estas líneas de código se emparejan con un nuevo archivo llamado ".htpasswd". Este archivo reside en el directorio que se está protegiendo y contiene el nombre de usuario y la contraseña que otorgará a los usuarios acceso a la información protegida. En el ejemplo anterior, se ha especificado que solo el usuario "secureUser" puede tener acceso al directorio, y deben ingresar la contraseña requerida determinada por la línea de código "AuthName EnterPassword" que se encuentra un poco por encima del usuario definición.

En el archivo ".htpasswd" que se creará en el directorio protegido, los usuarios solo necesitan agregar una sola línea de código. El formato es simple; Cada combinación de usuario y contraseña se separa mediante dos puntos. Esto significa que simplemente agregarán "usuario: contraseña" al archivo. En este caso, sería "secureUser: securedirectorypassword1" como ejemplo. Esto definirá todos los códigos de acceso y nombres de usuario posibles. Los administradores del sitio pueden incluir múltiples usuarios y contraseñas en esta lista, siempre y cuando se elimine la distinción "require user secureUser" del archivo ".htpasswd". Alternativamente, podrían definir múltiples contraseñas para el mismo nombre de usuario mientras mantienen esa línea de código, asegurando que el acceso pueda ser revocado de ciertos individuos o grupos en cualquier momento si se elimina la contraseña correcta del archivo ".htpasswd".

Para aprender más sobre este tema, lea: Uso de .htpasswd con su cuenta de alojamiento compartido de Linux.

Definición de enlaces fáciles de recordar a contenido de sitios web y páginas estáticas

Uno de los usos actuales más extendidos del prolífico archivo ".htaccess" es utilizar los parámetros del archivo para definirlo de forma semánticamente fácil "Enlaces permanentes"para el contenido del sitio y las páginas estáticas al usar software de administración de contenido como WordPress o MovableType. Esto no solo ayuda a los usuarios a recordar y volver a cargar el contenido del sitio, sino que también mejora el ranking de búsqueda de un sitio web en los principales motores de búsqueda. El contenido está en una página determinada y si el contenido coincide o no con la URL. Una coincidencia de título-URL indica más autoridad y una mayor probabilidad de que un usuario encuentre la información que está buscando. Apropiado, el sitio web ocupa un lugar más alto Los principales motores de búsqueda cuando se utiliza la estructura de enlace permanente.

Para aquellos usuarios que han instalado WordPress en los servidores de su sitio, la siguiente línea se agrega durante el proceso de instalación casi como un requisito, especialmente con versiones más recientes del software de la versión 3.0 y más reciente. La línea de código se ve exactamente igual al ejemplo a continuación y es estándar para más de 60 millones de clientes de WordPress alojados en todo el mundo.

RewriteEngine On
RewriteBase /
RewriteCond% {} REQUEST_FILENAME! -f
RewriteCond% {} REQUEST_FILENAME! -d
RewriteRule. / Index.php [L]

De nuevo, es fácil ver la estructura línea por línea de las instrucciones de programación del archivo ".htaccess". Estas simples líneas de código le dicen al servidor que use el archivo "index.php" de WordPress como la base para todas las URL que se originan dentro de la solución de software de gestión de contenido. Al usar ese archivo como base, y al volver a escribir los títulos de las entradas como enlaces permanentes, la reescritura de la URL esencialmente combina las consultas de la base de datos con los permisos de los archivos para crear URL "amigables". La modificación de un archivo ".htaccess" para volver a escribir sus URL es actualmente la forma principal, si no solo, de construir URL más amigables a partir de soluciones de software de gestión de contenido basadas en PHP y ASP.

Cómo guiar los motores de búsqueda a contenido recientemente reubicado local o remotamente

Si bien los enlaces permanentes fueron diseñados para eliminar el proceso de reubicación aleatoria de contenido y redireccionamientos intensivos, no eliminaron completamente el problema. De hecho, los enlaces permanentes se pueden administrar dentro del panel de control de cualquier solución de administración de contenido; En el momento en que un usuario cambia la estructura de enlace permanente, todo lo que está dentro del ámbito del software de CMS puede desaparecer y generar errores tanto en los motores de búsqueda como en los usuarios. Esto puede eliminarse como un problema con una línea muy simple de código ".htaccess" que redirige a los clientes y lanza un error "invisible" a los principales motores de búsqueda. El código es este:

Redireccionar 301 / archive / / entradas pasadas /

Este redireccionamiento coloca las URL antiguas y nuevas una al lado de la URL antigua enumerada primero. Le indica al servidor que lance un error de redireccionamiento 301 a los navegadores y a las "arañas" del motor de búsqueda por igual, pero este error nunca es visto por el usuario final. En cambio, una redirección de 301 es un error invisible que ocurre detrás de la escena. Mientras que el usuario es llevado automáticamente a la nueva ruta y al nuevo contenido, el navegador y el motor de búsqueda entienden que "301" significa "movido permanentemente". Tanto el navegador como los motores de búsqueda que experimenten este error actualizarán inmediatamente sus registros para reflejar la nueva URL y eliminarán la anterior de inmediato.

Esta es una excelente manera de pasar a un nuevo nombre de dominio sin perder clientes, también. El archivo ".htaccess" en el servidor antiguo se puede usar para apuntar realmente al contenido de un nombre de dominio completamente nuevo con solo un pequeño cambio en la línea de código que se presentó anteriormente. En lugar de apuntar a dos rutas relativas en el mismo servidor, el código de redirección de 301 en este caso se parecería a lo siguiente:

Redirigir 301 / http://www.your-domain-name.com

Esto le indica al servidor que envíe cualquier cosa en el directorio raíz, o cualquier subcarpeta, al nuevo nombre de dominio en la misma ruta que estaba en el servidor anterior. Todo lo que cambia es el propio nombre de dominio real. Nuevamente, debido a que usa el código de error 301, los motores de búsqueda actualizarán automáticamente sus registros para reflejar el nuevo nombre de dominio. Esta no solo es una gran herramienta para la usabilidad, sino que también evita que un sitio web pierda su posicionamiento en los motores de búsqueda. En lugar de volver a empezar, los motores de búsqueda entenderán que este es el mismo sitio web en una nueva ubicación. Mantendrán sus antiguas percepciones y clasificaciones, y el administrador se beneficiará enormemente al emplear este método único de movimiento entre dominios.

De errores invisibles y redirecciones a páginas de error reales para los visitantes del sitio

Es cierto que el archivo ".htaccess" se especializa en redirigir a los usuarios a nuevos contenidos mientras se actualizan de manera invisible los motores de búsqueda, pero este archivo único también se puede usar para mostrar páginas de error específicas cuando falta el contenido, no se puede mostrar o se codifica en tales una forma en que los errores evitan que la página se cargue en absoluto. Esto se hace especificando una página específica para mostrar basada en el código de error de tres dígitos del servidor. Estos códigos están integrados en servicios como Apache e IIS, por lo que no hay una necesidad real de configuración más allá del archivo ".htaccess". El siguiente ejemplo aborda la página de error más común del mundo, conocida como "error 404" para las páginas y directorios que faltan.

ErrorDocument 404 /404.html

Cada vez que un usuario se tropieza con un enlace que ya no existe, o una subcarpeta que ha sido eliminada, el archivo ".htaccess" lo redirige automáticamente a una página de error 404 informativa y útil que puede personalizar y diseñar específicamente por administrador del sitio web. Esta es una excelente manera de devolverlos al redil en lugar de enviarlos con una página de error simple y no descriptiva que no ofrece alternativas a la página perdida.

Se puede completar el mismo proceso para prácticamente todos los tipos de errores de carga de página basados ​​en servidor que existen. Esto incluye los errores de los servidores 401, 403 y 500, además del típico error de "página no encontrada" que la mayoría de los usuarios encuentra. Asegúrese de investigar el significado de cada código de error y presente un mensaje personalizado y un diseño del sitio para cada error que haga que los usuarios regresen al contenido del sitio existente con facilidad. Es la mejor manera de garantizar que incluso las fallas de navegación o lógicas de un sitio se conviertan en oportunidades y éxitos.

Cuando todo lo demás falla, prohíba a los usuarios algunas líneas de código simples

En su mayor parte, el archivo ".htaccess" se usa para cosas que tienden a funcionar a favor del usuario promedio. Esto incluye las páginas de error, los métodos de redireccionamiento personalizados y las URL de enlace permanente "amigables", entre otras excelentes funciones. Pero este archivo también puede usarse para asegurarse de que a algunos usuarios simplemente se les niegue el acceso al sitio web por completo. Es una excelente manera de prohibir a aquellos que "envían" comentarios al sitio, a menudo causan interrupciones o discusiones entre otros lectores, o simplemente no pueden manejar sus privilegios de acceso de manera responsable.

Para mantener la integridad de un sitio y asegurarse de que otros lectores no migren a otros sitios web por pura frustración con solo unas pocas manzanas podridas, el archivo ".htaccess" permite prohibir direcciones IP específicas o rangos completos (o "bloques") de direcciones IP. Esto significa que se pueden prohibir países enteros, se pueden prohibir ISP enteros o se puede obligar a estados, comunidades u organizaciones enteros a ir a otros lugares para leer su contenido diario y causar problemas. Cuando se emplea en el archivo ".htaccess" del sitio, el proceso de prohibir a un usuario se ve así:

Dejar de todas las
negar de 158.23.144.12
negar de 24.100

En el ejemplo anterior, se indica al sitio que permita a los visitantes de todas las direcciones IP, excepto aquellos que visitan desde la dirección IP 158.23.144.12. Además, a todos los visitantes en el rango de direcciones IP de 24.100 se les niega el acceso a un sitio. Este rango probablemente prohíbe que la base de clientes completa de un proveedor de servicios de Internet lea el contenido de un sitio. Tenga la seguridad, sin embargo, de que esto es a veces necesario en casos extremos.

Abrazar el archivo .htaccess y ejercer algunas funciones de poder sobre el sitio

Lo bueno del archivo .htaccess es que permite a los administradores del servidor controlar las configuraciones que de otra manera se consideran muy avanzadas o aquellas que requieren acceso "raíz" al servidor. Este archivo es una excelente manera de administrar el acceso, los errores, las redirecciones e incluso la estructura de URL y el sentido semántico. Dominarlo es la clave para proteger y habilitar a los visitantes nuevos y recurrentes de un sitio.

Artículo por Jerry Low

Geek papá, adicto a los datos de SEO, inversor y fundador de Web Hosting Secret Revealed. Jerry ha estado creando activos de Internet y haciendo dinero en línea desde 2004. Le encantan los garabatos sin sentido y probar comida nueva.