Preguntas Frecuentes - FAQ

Manual .htaccess  Imprimir éste Artículo

La configuracion de un servidor apache se establece basicamente a traves del fichero http.conf. Este fichero determina el comportamiento que tendra el servidor antes las peticiones que reciba. 

Este fichero es modificado por el administrador del sistema, los usuarios no pueden variar sus directivas, que asi se llaman los parametros de configuracion. 

Pero no todo esta perdido. El fichero .htaccess, permite que el administrador del sitio web personalice su pagina web, haciendo que el servidor se comporte de manera especial, solo para esa pagina web. 

¿Cómo funciona .htaccess? 

Cuando el servidor recibe una peticion, mira primero si existe el fichero .htaccess en la raiz de nuestra pagina o el directorio en el que se encuentra la pagina y superiores. Si lo encuentra, lo lee y aplica las directivas que encuentre, si estas son validas. Si encontrara algun error en estas directivas generara un error " 500 Internal Error ". 

¿Cómo edito este fichero? 

Es un fichero en 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 fichero (Redirecciones, Hotlinks, Directorios protegidos, etc). Asi no basta con editar un archivo .htacces y subirlo a la carpeta que deseemos. Debemos asegurarnos que no exista ya, y si esta, bajarnoslo a nuestro ordenador, añadir las directivas que queramos, y volverlo a subir. 

La mejor manera es hacer uso del Panel de Control. Si encontramos ese fichero, desde el propio Administardor de archivos, podemos editarla y guardarlo. Tambien podemos crear uno, si no existe. 

¿A través de mi programa FTP no veo este fichero? 

En linux, los ficheros que comienzan por un punto son ocultos. Algunos programas de FTP los presentan y otros no. 

¿Qué estructura tiene? 

Es un fichero en ASCII puro. Las lineas precedidas por # son comentarios y las directivas pueden ser : 

De linea : directiva argumento 

De bloque : 
OtrasDirectivas 


¿Qué directivas puedo incluir? 

Las directivas que podemos incluir son la mayoria de las que pudieramos incluir en el fichero de configuracion general de Apache .Tambien depende de los modulos cargados. Lo mejor es consultar la documentacion de apache : 

http://httpd.apache.org/docs/mod/directives.html 

En cada una de las directivas que encontramos, en la opcion Context : encontraremos si en su ambito de aplicacion, se encuentra .htaccess 

Por ejemplo, la documentacion 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 albito de aplicacion incluye .htaccess, indicandonos que podemos usarlo. 

En cualquier caso, veamos como aplicar algunas directivas : 

-- Paginas de error -- 

Podemos dirigir al usuario a las paginas que queramos cuando se produzca un error (Pagina no encontrada, Pagina 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 informacion 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 Telefonica cachee nuestra pagina y no veamos los cambios que apliquemos a nuestra pagina 

Son tres "ExpiresActive, ExpiresDefault y ExpiresByType" 

Ejemplo para caducar los graficos en una semana y las paginas HTML en un dia 

Código: 
ExpiresActive On 
ExpiresByType image/gif A86400 
ExpiresByType image/png A86400 
ExpiresByType image/jpg A86400 
ExpiresDefault "modification plus 1 day" 



Mas informacion en : http://httpd.apache.org/docs/mod/mod_expires.html 

-- Diferente pagina de inicio -- 

Usamos la directiva "DirectoryIndex" 

Ejemplo 

Código: 
DirectoryIndex inicio.php 



Mas informacion : http://httpd.apache.org/docs/mod/mod_dir.html#directoryindex 

-- Permitir o negar el acceso a nuestra pagina -- 

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 restictivo 
deny from all 
allow from 123.123.123.1 # Solo permite el acceso una IP 


Mas informacion 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 pagina) 

Ejemplo de hotlink : 


RewriteEngine on 
RewriteCond % !^http://dominio.com/.*$ [NC] 
RewriteCond % !^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

NOTA IMPORTANTE : Si trabaja con las extensiones FrontPage, no edite el fichero a mano, ya que FrontPage usa estos ficheros para su funcionamiento.

¿Fue útil la respuesta?

Artículos Relacionados

El Archivo php.ini
¿Qué es el archivo php.ini? El archivo php.ini es el que contiene nuestra configuración de PHP,...