.htaccess codigos y ejemplos

General añadir comentario

Hace poco puse algunos términos más comunes que se usan en el mundo de internet301redireccion cómo el CRT o el CRC, Y creo que fué de interes general.. Asi que hoy voy a poner tratar de poner algunos terminos sobre las redirecciones .htaccess cuando usarlas y para que sirven.

Los archivos .htaccess son contenedores de reglas que el servidor web Apache reconocerá a la hora de cargar tu sitio. Estos archivos son muy útiles antes y durante la construcción de una web, por ello presento 20 ejemplos de cómo podemos sacar provecho de las funcionalidades que brinda.

Preparación

Antes que nada debemos asegurarnos de que los archivos .htaccess realmente esten habilitados en nuestro servidor Apache. Para ello es necesario y suficiente que en /etc/apache2/site-available/default se incluya la opción:

AllowOverride All

en la definición de los directorios que deseemos utilizar.

Los 20 ejemplos

1) Personalizar el Error 404

Se puede personalizar el clásico error 404 de página no encontrada añadiendo esta línea a tu archivo .htaccess:

ErrorDocument 404: “Esta página no esta disponible”

o bien redirigir a un archivo (por ejemplo html):

ErrorDocument 404 /error404.html

De esta misma manera se puede hacer con los demas errores como el 403 de acceso denegado.

2) Protección a un directorio

Se puede proteger directorios con usuario y contraseña, esto es útil para controlar quienes pueden navegar los archivos o no. Primero se debe crear un archivo .htpasswd que es donde se guardará los datos del usuario. Este archivo puede estar en el directorio raíz pero NO en el que queremos proteger.

Creamos el archivo .htpasswd

$ touch /var/www/misitio/.htpasswd

y luego para dar de alta a un usuario podemos escoger dos caminos, uno es utilizando una herramienta online que encriptará la contraseña que ingresemos, luego tan solo debemos copiar y pegar lo que nos devuelva en el archivo .htpasswd. El otro camino es utilizando el comando htpasswd de la siguiente forma:

$ htpasswd /var/www/misitio/.htpasswd admin

a continuación nos pedirá que ingresemos una contraseña y listo esta cuenta queda guardada en el archivo. Ahora solo falta crear el .htaccess para el directorio que queremos proteger, para ello nos dirigimos a ese directorio y dentro de el creamos un archivo .htaccess y escribimos lo siguiente:

AuthName “Este directorio es privado”
AuthUserFile /var/www/misitio/.htpasswd
AuthType basic
Require valid-user

3) Evitar navegar los directorios

Es muy sencillo evitar que se navegue el contenido de los directorios del nuestro sitio, para ello basta con agregar la siguiente línea al .htaccess que esta en la raíz:

Options All -Indexes

4) Bloqueo de IPs

En caso de un ataque o por razones de seguridad puede ser necesario bannear una ip:

Order allow, deny
Deny from xxx.xxx.xxx.xxx
Allow from all

Cambia xxx.xxx.xxx.xxx por la ip que desees bannear o en vez de una dirección ip puede ser un dominio:

Order allow, deny
Deny from dominio.banneado.com
Allow from all

5) Límite de visitas

Esta opción limita el número de visitantes a tu sitio a 300 en el mismo momento:

MaxClients 300

6) Cambiar la página principal

Con esta opción le indicas al servidor que tu página de inicio no es la típica index sino la que tu desees:

DirectoryIndex otroindex.html

7) Redireccionamiento

Existen muchas formas de redireccionar a tus visitantes a otro lugar. Estos son algunos de ellos:

Redirect / /otro_dir/
Redirect /index.php /nuevo.php
Redirect /files/doc.zip http://nuevo.com/files/doc.zip

8) Anti hot linking

El hot link es la acción de enlazar en un sitio ajeno un archivo que esta alojado en nuestro servidor. Esto implica consumo de ancho de banda y es algo indeseable por ello se puede aplicar la siguiente regla:

RewriteEngine On
RewriteCond % !^$
RewriteCond % !^http://(www\.)?dominio.com/.*$ [NC]
RewriteRule ^.*\.(bmp|tif|gif|jpg|jpeg|jpe|png)$b – [F]

9) Obligar a descargar archivos

Esta opción obliga a que los archivos no sean abiertos en el navegador sino descargados por el cliente:

AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .txt
AddType application/octet-stream .pdf .odt .doc

Para uno en particular sería:

<Files archivo_particular.txt>
AddType application/octet-stream txt
</Files>

10) Configuración del host

Puedes escribir tu configuración personalizada:

#Indica el orden de precedencia de ejecución de los index
DirectoryIndex index.html index.php index.htm
#El lenguaje por defecto
DefaultLanguage es-ES
#La codificación por defecto
AddDefaultCharset UTF-8
#Activar (on), desactivar (off) o mostrar email (email) para la firma del sevidor en los mensajes
ServerSignature Off
#Establecer el email del administrador
SetEnv SERVER_ADMIN webmaster@dominio.com

11) Protección de archivos

Deniega el acceso a los archivos que especifiques:

#protege los .htaccess, .htpasswd, .ini, .log
<FilesMatch “\.(htaccess|htpasswd|ini|log)$”>
Order Allow,Deny
Deny from all
</FilesMatch>

#Protege un archivo en particular y pide contraseña
<Files config.php>
Order deny,allow
Deny from all
AuthName “Acceso restringido”
AuthType Basic
AuthUserFile /.htpasswd
Require valid-user
</Files>

12) Permitir el acceso sólo a algunas IPs o dominios

Similar al ejemplo anterior protegemos un directorio o el directorio raíz y solo permitimos el acceso a quien deseemos:

Order deny,allow
Deny from all
Allow from 192.168.0.1 192.168.0.2
Allow from www.exclusivo.com

13) Redireccionar todo el tráfico menos una ip o dominio

Este tipo de redireccionamiento es muy útil cuando el sitio esta bajo construcción:

ErrorDocument 403 http://www.nuevositio.com
Order deny,allow
Deny from all
Allow from 200.10.45.120
Allow from desarrolladores.com

14) Limitar los tipos de archivos a subir (upload)

Se puede controlar que tipos de archivos permitimos subir desde un cliente a nuestro sitio de la siguiente forma:

AddType image/jpeg .jpg
AddType text/plain .txt .xml .html .css

15) Evitar mostrar ciertos tipos de archivos

Este ejemplo ignorará la existencia de archivos de la extensión indicada:

IndexIgnore *mp3 *.avi *.mpeg

16) Determinar el tiempo en caché de los archivos

Con el fin de optimizar y agilizar tu sitio puedes determinar el tiempo en caché según el tipo de archivo que sea de acceso público (el tiempo esta expreasado en segundos):

# 1 mes
<FilesMatch “\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$”>
Header set Cache-Control “max-age=6480000, public”
</FilesMatch>

# 1 semana
<FilesMatch “\.(jpg|jpeg|png|gif|swf)$”>
Header set Cache-Control “max-age=604800, public”
</FilesMatch>

# 1 hora
<FilesMatch “\.(txt|xml|js|css)$”>
Header set Cache-Control “max-age=3600″
</FilesMatch>

# No usar caché
<FilesMatch “\.(html|htm|php|cgi|pl)$”>
Header set Cache-Control “max-age=0, private, no-store, no-cache, must-revalidate”
</FilesMatch>

17) Redirecciona los logs

Con esta regla podrás ver los logs del servidor en un archivo de texto:

ErrorLog /files/error.log

18) Obligar a escribir www

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond % !^www\.dominio\.com$ [NC]
RewriteRule ^(.*)$ http://www.dominio.com/$1 [R=301,L]

19) Desahabilitar la ejecución de scripts indeseados

Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .sh .cgi

20) Dengar métodos de comunicación

RewriteCond % !^(GET|HEAD|OPTIONS|POST|PUT)
RewriteRule .* – [F]

Contestación Rápida

Puedes Logear para insertar tu comentario.

oinki
Entradas RSS Commentarios RSS Acceder XHTML - CSS
WordPress Loves AJAX