Información general htaccess NOTA IMPORTANTE : No edite el Htaccess con FrontPage, ya que usa estos archivos para su funcionamiento. La configuracion de un servidor apache se establece básicamente a través del archivo http.conf. Este archivo determina el comportamiento que tendrá el servidor antes las peticiones que reciba.
Este archivo es modificado por el administrador del sistema, así que nosotros no podemos variar sus directivas o parámetros de configuración.
El archivo .htaccess, permite que nosotros personalicemos nuestra pagina, haciendo que el servidor se comporte de manera especial, solo para nosotros.
Como funciona .htaccess?
Cuando el servidor recibe una petición, primero verifica si existe el archivo .htaccess en la raíz de nuestra pagina o el directorio en el que se encuentra la página y superiores. Si lo encuentra, lo lee y aplica las directivas que encuentre, si estas son validas. Si encontrara algún error en estas directivas generará un error "500 Internal Error".
Como edito este archivo?
Es un archivo ASCII puro, asi que podemos editarlo con cualquier editor, como el "notepad" de Windows. Es importante notar que algunas opciones que se establecen en el panel de control, hacen uso de este archivo (Redirecciones, Hotlinks, Directorios protegidos, etc). Así que no basta con editar un archivo .htacces y subirlo a la carpeta que deseemos.
Debemos asegurarnos que no exista ya, y si existe, bajárnoslo a nuestra computadora, añadir las directivas que queramos, y volverlo a subir.
La mejor manera es hacer uso del Panel de Control. Si encontramos ese archivo, desde el propio Administrador de archivos, podemos editarlo y guardarlo. También podemos crear uno, si no existe.
A través de mi programa FTP no veo este archivo.
En Linux, los archivos que comienzan por un punto son ocultos. Algunos programas de FTP los presentan y otros no.
Que estructura tiene?
Es un archivo en ASCII puro. Las líneas precedidas por # son comentarios y las directivas pueden ser:
De línea: directiva argumento
De bloque: Otras Directivas
Que directivas puedo incluir?
Las directivas que podemos incluir son la mayoría de las que pudieramos incluir en el archivo de configuración general de Apache .También depende de los módulos cargados. Lo mejor es consultar la documentación de apache:
http://httpd.apache.org/docs/mod/directives.html
En cada una de las directivas que encontramos, en la opción Context: encontraremos si en su ámbito de aplicación, se encuentra .htaccess
Por ejemplo, la documentación dice sobre DirectoryIndex:
Syntax: DirectoryIndex local-url [local-url]
Default: DirectoryIndex index.html
Context: server config, virtual host, directory, .htaccess
Override: Indexes
Status: Base
Module: mod_dir
En Context señala que su ámbito de aplicación incluye .htaccess, indicandonos que podemos usarlo.
En cualquier caso, veamos como aplicar algunas directivas:
-- Páginas de error --
Podemos dirigir al usuario a las páginas que queramos cuando se produzca un error (Página no encontrada, Página prohibida, etc).
La directiva que usamos es:
ErrorDocument numero_de_error /pagina_a_redirigir
Ejemplo para manejar los errores 404 y 500
Código:
ErrorDocument 404 /errores/error_404.html
ErrorDocument 500 /errores/error_500.html
Mas información en:
http://httpd.apache.org/docs/mod/core.html#errordocument
-- Cabeceras Expire --
Podemos usar estas directivas para generar cabeceras Expire y saltarnos el cache de algunos proveedores. Por ejemplo, evitar que el proxy de Telefónica cachee nuestra pagina y no veamos los cambios que apliquemos a nuestra pagina.
Son tres "ExpiresActive, ExpiresDefault y ExpiresByType"
Ejemplo para caducar los gráficos en una semana y el resto de documentos en un dia.
Código:
ExpiresActive On
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresDefault "modification plus 1 day"
nota : 604800 = (60 * 60 * 24 *7) Una semana expresada en segundos.
Mas información en : http://httpd.apache.org/docs/mod/mod_expires.html
-- Diferente página de inicio --
Usamos la directiva "DirectoryIndex"
Ejemplo.
Código:
DirectoryIndex inicio.php
Mas información : http://httpd.apache.org/docs/mod/mod_dir.html#directoryindex
-- Permitir o negar el acceso a nuestra página --
Las directivas son "allow y deny"
Ejemplo para negar el acceso a determinadas direcciones.
Código:
allow from all # Permite a todos
deny from 100.12.12.12 # Deniega a esta IP
deny from 100.12.12 # deniega a este rango
deny from apache.org # deniega a este host
deny from crack.dominio.com # deniega a este subdominio
Código:
# ejemplo muy restrictivo
deny from all
allow from 123.123.123.1 # Solo permite el acceso una IP
Mas información en : http://httpd.apache.org/docs/mod/mod_access.html
-- Reescribir la URL --
Una poderosa y no facil herramienta para manipular URLs . Nuestro panel de control la usa para los Hotlinks (Evitar que otros servidores roben material de nuestra página)
Ejemplo de hotlink:
Código:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://dominio.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.dominio.com/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]
Protejemos las extensiones jpg|jpeg|gif|png|bmp de referers que no sean dominio.com o www.dominio.com
Mas informacion en : http://httpd.apache.org/docs/misc/rewriteguide.html
-- Desactivar listado directorios --
Crear un archivo .htaccess con la siguiente línea de código para evitar el listado de directorios que no contienen un archivo index.
Options -Indexes



