Introducción
El servidor web Apache tiene una serie de opciones de configuración que están disponibles para el administrador del servidor. En un entorno de hosting compartido, no tienes acceso a la configuración principal de Apache, por lo que te quedas con la configuración predeterminada. Sin embargo, es posible anular algunas de las configuraciones predeterminadas creando (o editando) un archivo llamado .htaccess.
El .htaccess es un archivo de texto ASCII simple ubicado en su directorio www o en un subdirectorio de su directorio www. Puede crear o editar este archivo en cualquier editor de texto (como el Bloc de notas) y luego cargarlo en el directorio cuya configuración desea modificar. Asegúrese de que el archivo se cargue en modo ASCII (no BINARIO) y asegúrese de que los permisos del archivo estén configurados en 644 (rw-r--r--).
Los comandos en el archivo .htaccess afectan el directorio en el que se encuentra y todos los subdirectorios. Si coloca el archivo .htaccess en su directorio raíz, afectará a todo su sitio web. Si lo coloca en un subdirectorio de su directorio www, afectará solo a ese directorio más los subdirectorios de ese directorio.
La mayoría de los comandos .htaccess están diseñados para colocarse en una línea. Si su editor de texto ajusta líneas automáticamente, debe desactivar esa función antes de guardar y cargar su archivo. Además, tenga en cuenta que los comandos .htaccess distinguen entre mayúsculas y minúsculas.
Estas son algunas de las cosas que puede hacer con el archivo .htaccess:
Personalizar mensajes de error
Si desea anular las páginas de error del servidor, puede usar .htaccess para definir sus propios mensajes. Esta capacidad se analiza en la sección Mensajes de error personalizados del manual. Un ejemplo de la sintaxis es:
ErrorDocument 500 /server_error.html
Anular la configuración de SSI
De forma predeterminada, solo las páginas que terminan en la extensión .shtml analizarán las inclusiones del lado del servidor (SSI) en nuestros servidores. Puedes anular esta restricción en tu archivo .htaccess:
Si desea anular la configuración predeterminada del servidor para que SSI funcione con documentos .html, puede crear un archivo llamado .htaccess y cargarlo (en modo ASCII) en su directorio www principal. Agregue las siguientes líneas a su archivo .htaccess:
AddType text/html .html AddHandler server-parsed .html
Si desea que tanto los documentos .html como los .htm analicen SSI, cree su archivo .htaccess con estas líneas:
AddType text/html .html AddHandler server-parsed .html AddHandler server-parsed .htm
Cambie su página de inicio predeterminada
Para navegar por su sitio especificando únicamente el nombre de dominio (p. ej., http://www.i7hosting.com) en lugar de tener que especificar un nombre de archivo de página exacto (p. ej., http://www.i7hosting.com/filename.html ), debe tener una página de índice en su directorio www. Los nombres de archivo predeterminados aceptables para las páginas de índice incluyen index.htm,index.html,index.cgi,index.shtml, index.php, etc. Tenga en cuenta que todos se denominan index.*.
También existe un orden de precedencia predeterminado para estos nombres. Entonces, si tiene un archivo llamado index.cgi y un archivo llamado index.html en su directorio, el servidor mostrará index.cgi porque ese nombre tiene mayor prioridad que index.html.
Usando .htaccess, puede definir nombres de archivos de índice adicionales y/o cambiar el orden de precedencia. Para definir su página de índice como hieronymous.html agregue la siguiente línea a su archivo .htaccess:
DirectoryIndex myIndex.html
Esto hará que el servidor busque un archivo llamado hieronymous.html. Si encuentra ese archivo, lo mostrará. Si no encuentra ese archivo, devolverá un error 404 Página faltante.
Para cambiar el orden de precedencia, ingrese un comando DirectoryIndex con varios nombres de archivos en la misma línea. El orden en que aparecen los nombres de los archivos (de izquierda a derecha) determina el orden de precedencia. Por ejemplo,
DirectoryIndex myIndex.html index.cgi index.php index.html
Habilitar la exploración de directorios
Por motivos de seguridad, hemos eliminado la configuración predeterminada que permitía la indexación de directorios. Esta es la opción que permite que el contenido de un directorio se muestre en el navegador cuando el directorio no contiene una página de índice.
Por ejemplo, si realiza una llamada http a un directorio como http://i7hosting.com/images/, enumerará todas las imágenes en ese directorio sin la necesidad de una página html con enlaces.
Si necesita esta opción en directorios específicos, todavía está disponible. Puede reactivarlo agregando la siguiente línea a su archivo .htaccess:
Options +Indexes
Una vez agregado esto, el directorio se indexará completamente nuevamente.
Bloquear a los usuarios para que no accedan a su sitio web
Si desea negar el acceso a un individuo en particular y conoce la dirección IP o el nombre de dominio que el individuo usa para conectarse a Internet, puede usar .htaccess para bloquear a ese individuo de su sitio web.
order deny,allow deny from 123.236.143.000 deny from 456.78.90. deny from .aol.com allow from all
En el ejemplo anterior, un usuario con la dirección IP exacta 123.156.189.0 sería bloqueado; todos los usuarios dentro de un rango de números IP desde 156.78.90.0 a 156.78.90.255 serían bloqueados; y todos los usuarios que se conecten desde America Online (aol.com) serán bloqueados. Cuando intentaron navegar por su sitio web, se les presentó el error 403 Prohibido.
Redirigir visitantes a una nueva página o directorio
Digamos que rehace todo su sitio web, cambiando el nombre de páginas y directorios. Los visitantes de las páginas antiguas recibirán el error 404 Archivo no encontrado. Puede resolver este problema redirigiendo las llamadas de una página antigua a la página nueva. Por ejemplo, si su página anterior se llamaba oldpage.html y esa página fue reemplazada por newpage.html, agregue esta línea a su archivo .htaccess:
Redirect permanent /oldpage.html http://www.i7hosting.com/newpage.html
Por supuesto, desea reemplazar i7hosting.com con su nombre de dominio real. Ahora, cuando el visitante escriba http://www.i7hosting.com/myoldpage.html, será redirigido automáticamente a http://www.i7hosting.com/mynewpage.html.
Si ha cambiado el nombre de un directorio, puede usar una línea de redireccionamiento para afectar a todas las páginas dentro del directorio:
Redirect permanent /olddirectory http://www.i7hosting.com/newdirectory/
Tenga en cuenta que la página o directorio anterior se especifica utilizando la ruta del sistema relativa a su directorio www, mientras que la página o directorio nuevo se especifica mediante la URL absoluta.
Evite los enlaces activos y la pérdida de ancho de banda
¿Qué pasa si el propietario de otro sitio web está robando sus imágenes y su ancho de banda al vincular directamente sus archivos de imágenes desde su sitio web? Puedes evitar esto agregando esto a tu archivo .htaccess:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?i7hosting.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|png)$ - [F]
Reemplace i7hosting.com con su nombre de dominio real. Con este código implementado, sus imágenes solo se mostrarán cuando el visitante navegue por http://i7hosting.com. Las imágenes vinculadas desde otros dominios aparecerán como imágenes rotas.
Si se siente particularmente desagradable, incluso puede proporcionar una imagen alternativa para mostrar en las páginas vinculadas más populares, por ejemplo, una imagen que diga "Robar es malo... visite http://i7hosting.com para ver la imagen real". imagen que pertenece aquí." Utilice este código para lograr eso:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?i7hosting.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|png)$ http://www.i7hosting.com/dontsteal.gif [R,L]
Esta vez, reemplace i7hosting.com con su nombre de dominio y reemplace dontsteal.gif con el nombre de archivo de la imagen que ha creado para desalentar los enlaces activos.
Evitar la visualización de .htaccess u otros archivos
Para evitar que los visitantes vean el contenido de su archivo .htaccess, coloque el siguiente código en el archivo:
order allow,deny deny from all
Si desea evitar que los visitantes vean otro archivo, simplemente sustituya el nombre de ese archivo por .htaccess en la especificación de Archivos.
Detener a los recolectores de correo electrónico
Si bien definitivamente desea alentar a los visitantes robot de los motores de búsqueda, hay otros robots menos benévolos que preferiría que se mantuvieran alejados. Los principales son esos desagradables robots que se arrastran por la web, chupando direcciones de correo electrónico de páginas web y agregándolas a listas de correo no deseado.
RewriteCond %{HTTP_USER_AGENT} Wget [OR] RewriteCond %{HTTP_USER_AGENT} CherryPickerSE [OR] RewriteCond %{HTTP_USER_AGENT} CherryPickerElite [OR] RewriteCond %{HTTP_USER_AGENT} EmailCollector [OR] RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR] RewriteCond %{HTTP_USER_AGENT} EmailWolf [OR] RewriteCond %{HTTP_USER_AGENT} ExtractorPro RewriteRule ^.*$ X.html [L]
Tenga en cuenta que al final de cada línea de un robot con nombre aparece un '[O]'; no olvide incluirlo si agrega otros a esta lista.
Esto no es en modo alguno infalible. Muchos de estos rastreadores no se identifican y es casi imposible crear una lista exhaustiva de los que sí lo hacen. Sin embargo, vale la pena intentarlo si mantiene a algunos alejados. Los anteriores son todos los que pude encontrar.