Diferencia entre revisiones de «.htaccess»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
m Revertidos los cambios de 212.34.134.133 (disc.) a la última edición de Manuelt15
Línea 109: Línea 109:
== Enlaces Externos ==
== Enlaces Externos ==
<ul>
<ul>
<li>[http://networktools.es/htpasswd/htpasswd.php# Generador de htaccess]</li>
<li>[http://httpd.apache.org/docs/1.3/howto/htaccess.html#how Htaccess Guía Oficial]</li>
<li>[http://httpd.apache.org/docs/1.3/howto/htaccess.html#how Htaccess Guía Oficial]</li>
<li>[http://htaccess-rlz.blogspot.com/ Htaccess Blog sobre .htaccess]</li>
<li>[http://htaccess-rlz.blogspot.com/ Htaccess Blog sobre .htaccess]</li>

Revisión del 12:24 11 abr 2010

Introducción, idea general

Un fichero .htaccess (hypertext access), también conocido como archivo de configuración distribuida. Es un archivo que nos permite definir diferentes directivas de configuración para cada directorio (con sus respectivos subdirectorios) sin necesidad de editar el archivo de configuración principal de apache [1].

Ejemplo

#/home/usuario1/directorio1/   -->   Configuración 1   ->   URLS semánticas o amigables (máximo dos niveles).
#/home/usuario1/directorio2/   -->   Configuración 2   ->   Restricción, directorio privado.
#/home/usuario2/directorio1/   -->   Configuración 1   ->   URLS semánticas o amigables (máximo cinco niveles).
#/home/usuario2/directorio1/   -->   Configuración 2   ->   Denegar el acceso a un rango de IP's
#
#...
#
#''/ruta/directorioX/''   --> Configuración x

Muchas ventajas se desprenden de los ejemplos listados anteriormente. En primer lugar cabe destacar que, las directas definidas en el .htaccess se reflejan instantáneamente en los directorios (no es necesario reiniciar apache). Permite que distintos usuarios puedan fácilmente adaptar el servidor apache a sus necesidades, teniendo solo niveles medios de privilegio.

Usos frecuentes del .htaccess

El fichero .htaccess ofrece un universo de posibilidades, detallamos a continuación los usos más frecuentes.

  • Restringir el acceso a directorios
  • Restringir el acceso a IPs o ISPs
  • Creación de URLs Amigables (semanticas)
  • Manejar errores del servidor.
  • Crear redirecciones estáticas
  • Controlar Cache
  • Evitar hotlink
  • Forzar Dominio sin WWW

Restringir el acceso a directorios

AuthName "Es necesario Autentificarse"
AuthType Basic
AuthUserFile /.htpasswd
require valid-user

Restringir el acceso a IPs o ISPs

order allow,deny
deny from [ESCRIBIR-IP]
deny from [ESCRIBIR-IP]
allow from all

Creación de URLs Amigables (semanticas)

#Habilitar el modulo
RewriteEngine on
RewriteBase /

#No reescribir imágenes ni css (aunque se podría usar el tag <base> dentro del html) 
RewriteRule \.(css|jpe?g|gif|png)$ - [L]
RewriteRule ^([a-z]{2})/([a-z\-0-9]+)/([a-z\-0-9]+)\.html$ /usuario/index.php?langCode=$1&view=$2&title=$3 [L]

#Regla formada por 3 expresiones regulares sencillas, \.html$ agrega el sufijo .html
#URLs de ejemplo

# http://dominio.com/es/articulo/urls-amigables-htaccess.html
# http://dominio.com/en/article/semantic-urls-htaccess.html

Manejar errores del servidor.

ErrorDocument 500 http://foo.example.com/debug/
ErrorDocument 404 /error/404.php
ErrorDocument 401 /info.html
ErrorDocument 403 "Hoy es navidad deja un rato internet y ve a saludar a tu familia"

Crear redirecciones estáticas

redirect 301 /directorioViejo/archivoVidejo.htm http://www.dominio.com/[NUEVA-URL]

Controlar Cache

Header set Cache-Control "public"
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
Header unset Last-Modified

Evitar Hotlink

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://dominio.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://dominio.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.dominio.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.dominio.com/.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ - [F,NC,L]

Forzar Dominio con o sin WWW

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

Enlaces Externos